Ошибка «405 Method Not Allowed» при попытке отправить запрос.через API выборки JS в файл PHP - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь использовать методы PUT, PATCH, UPDATE и т. Д. В моем проекте, чтобы узнать, как работает REST.

Я использовал API выборки JS для отправки запросов и получил ошибку «Метод 405 не разрешен».Я искал его, затем изменил свой .htaccess на следующее:

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "*"
Header add Access-Control-Allow-Methods "GET, PUT, POST, UPDATE, DELETE, OPTIONS"

Я использовал этот веб-сайт, чтобы проверить правильность всех заголовков:
https://www.webconfs.com/http-header-check.php

результат:

HTTP/1.1 200 OK => 
Date => Mon, 01 Jul 2019 14:36:58 GMT
Server => Apache/2
X-Powered-By => PHP/5.6.40
Cache-Control => max-age=2592000
Expires => Wed, 31 Jul 2019 14:36:58 GMT
Vary => Accept-Encoding,User-Agent
Access-Control-Allow-Origin => *
Access-Control-Allow-Headers => *
Access-Control-Allow-Methods => GET, PUT, POST, UPDATE, DELETE, OPTIONS
Connection => close
Content-Type => text/html; charset=UTF-8

Результат содержит

Access-Control-Allow-Methods => GET, PUT, POST, UPDATE, DELETE, OPTIONS

, а JS XHR по-прежнему выдает ошибку 405.

В чем проблема?Спасибо за ваши ответы.

1 Ответ

0 голосов
/ 01 июля 2019

Здесь вы сталкиваетесь с двумя разными проблемами.

У вас есть HTTP 405 метод, недопустимый ответ , что означает, что сервер отклоняет любой метод HTTP, который вы используете для выполнения запроса.

Вы связываете это с той же политикой происхождения, которая обеспечивается браузером , чтобы запретить JavaScript на вредоносном веб-сайте использовать браузер для получения доступа к секретным данным на другом веб-сайте.(например, ваш сервис веб-почты).

Если бы это была проблема той же политики происхождения, то консоль браузера отображала бы сообщение о заголовках CORS или Access-Control в консоли инструментов разработчика.

В этом случае любой используемый вами метод (и вы сказали, что «PUT, PATCH, UPDATE и т. Д.», Что довольно широко) не поддерживается сервером.Обратите внимание, что по умолчанию при работе со статическими файлами большинство серверов только разрешают запросы GET, POST, OPTIONS и HEAD.

Как правило, для написания других операций необходимо написать код на стороне сервера.виды запросов и серверы вообще не имеют встроенной обработки по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...