У меня есть приложение API php + laravel, размещенное в службе приложений Azure. У меня такое же приложение также размещено в apache в Azure.Остальные конечные точки работают правильно в apache, но в среде IIS все глаголы PUT не работают с ошибкой 405 (метод не разрешен) .Я еще не пробовал УДАЛИТЬ, но на основании того, что я вижу, все глаголы предперелётного перенаправления должны давать сбой.
Я потратил на это неделю, позвольте мне сначала объяснить, что я делал до сих пор;Я добавил следующее в мой web.config
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains"/>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="X-Requested-With,Content-Type" />
<add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS,DELETE,PUT,PATCH" />
</customHeaders>
</httpProtocol>
С помощью методов контроля доступа и разрешения я мог бы пропустить вызовы OPT из моего приложения переднего плана.
Я попробовал несколько изпредложение, упомянутое в Laravel 5.1 API Enable Cors , отвечает.Также следовал http://codecipher.in/laravel-cors/, чтобы я мог избежать вызовов OPT со стороны моего клиента.Эти изменения позволили мне пропустить вызовы OPT и сделать мой PUT.К сожалению, PUT вызывает, хотя это все еще не удается.
Я позвонил в конечную точку PUT через почтальона, и получил «Невозможно отобразить страницу, которую вы ищете, потому что используется недопустимый метод (глагол HTTP).» error.В заголовках я вижу
access-control-allow-methods →POST,GET,OPTIONS,DELETE,PUT,PATCH
, но я вижу allow как
allow →GET, HEAD, OPTIONS, TRACE
Как я уже говорил, приложение, размещенное в Apache, работает очень хорошо, и я хотел бы дать емупопробуйте в IIS, прежде чем я сдаюсь и полностью перейду на Apache.
Что использует IIS, чтобы запретить вызовы глагола PUT?
Спасибо