Ошибка 405 Метод POST IIS8.0 не разрешен

У меня есть облачное приложение Azure, работающее под управлением IIS8.0.
На нем работает сайт Wordpress, и я хочу отправить запрос POST к определенному ресурсу.
Когда я использую консоль REST, мне удается получить 200 code.
Когда я использую приложение для iOS, оно возвращает ошибку 405 с сообщением «Метод POST не разрешен».

Я проверил заголовки запросов, и они точно такие же.

Я погуглил и обнаружил, что это может иметь какое-то отношение к обработчикам в IIS, поэтому вот мои обработчики:

<handlers accessPolicy="Read, Script">
    <add name="PHP54_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.4\php-cgi.exe" resourceType="Either" />
    <add name="PHP53_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.3\php-cgi.exe" resourceType="Either" />
    <add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
    <add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" />
    <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" />
    <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
</handlers> 

Может ли кто-нибудь помочь мне с моей проблемой?


person HansElsen    schedule 21.11.2013    source источник


Ответы (2)


Я узнал, что было причиной проблемы. Мне было интересно, почему отправка запроса из моего браузера была действительной, а из приложения iOS - нет.

И браузер, и приложение отправляли одни и те же заголовки, полезные данные и URL.

URL-адрес был примерно таким: http://www.example.com/?json=subscribe/subscribe.

Оказывается, приложение не смогло использовать этот URL. Мне пришлось использовать: http://www.example.com/index.php?json=subscribe/subscribe

Для работы iOS необходимо было добавить index.php.

Я добавляю Wordpress в ключевые слова.

person HansElsen    schedule 22.11.2013

Вы можете попробовать использовать прослушиватель сетевых пакетов, такой как Wireshark, чтобы увидеть необработанный HTTP, который отправляет iOS.

person Adrian    schedule 21.11.2013