我有一个运行IIS8.0的Azure云应用程序 我在其上运行了一个Wordpress站点,我想对某个资源发出POST请求 当我使用REST控制台时,它会成功使用200个代码 当我使用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>
有人可以帮我解决我的问题吗?
答案 0 :(得分:1)
我发现了造成这个问题的原因。 我想知道为什么从我的浏览器发送请求是有效的,而且iOS应用程序没有。
浏览器和应用程序都发送了完全相同的标头和有效负载以及网址。
网址是这样的:http://www.example.com/?json=subscribe/subscribe。
原来该应用无法使用此网址。我不得不使用:http://www.example.com/index.php?json=subscribe/subscribe
必须添加index.php
才能使用iOS。
我正在为关键字添加Wordpress。
答案 1 :(得分:0)
您可以尝试使用Wireshark之类的网络数据包侦听器来查看iOS正在发送的原始HTTP。