获取 404 用于 IIS 7.5 服务器 2008 上的 PUT 和 DELETE 请求


Getting 404 for PUT and DELETE request on IIS 7.5 server 2008

我已经

好几天了,我一直在努力解决我的网络应用程序中的PUT,DELETE问题。

  • 我正在使用 REST 服务器 (php)
  • Windows Server 2008 R2 IIS 7.5
  • 我的服务器是托管在德国contabo公司的专用服务器
  • 客户端使用 js (sencha touch)
  • 获取,开机自检工作正常

我的域和我的数据库在同一台服务器上,我尝试了许多使用网络的建议:

  • 在"处理程序映射"中启用谓词
  • 未安装 Webdav
  • (英语:Webdav)
  • 创建网络配置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.webServer>   
   <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="http://example.com" />      
     <add name="Access-Control-Allow-Methods" value="GET, POST, DELETE, PUT, OPTIONS" />
     <add name="Access-Control-Allow-Credentials" value="true" />
       <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept,*" />
     <add name="Access-Control-Max-Age" value="1000" />      
     </customHeaders>
   </httpProtocol>
 </system.webServer>
</configuration>

我还尝试冥想:"applicationHost.config"(C:''Windows''System32''inetsrv''config):

<add name="PHP_via_FastCGI" path="*.php" verb="GET,HEAD,PUT,DELETE,POST" modules="FastCgiModule" scriptProcessor="C:'Program Files (x86)'PHP'v5.6'php-cgi.exe" resourceType="Either" />
<add name="PHP53_via_FastCGI" path="*.php" verb="GET,HEAD,PUT,DELETE,POST" modules="FastCgiModule" scriptProcessor="C:'Program Files (x86)'PHP'v5.3'php-cgi.exe" resourceType="Either" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />

但什么都没有:-(

  • 我也有装有win7和IIS 7.5的笔记本电脑,没问题,它工作得很好。
  • 我只是不知道如何在我的服务器中修复它?

谢谢你的建议

我不确定为什么会出现这个问题,但我对您的 URL 非常谨慎。 在 GET 调用中,xxxxxx.com/php/customers.php?_dc=1417023448549&db=107&page=2&start=25&limit=25作为 URL。 只是为了解释,如果您已经知道这一点,请不要侮辱您,但是查询字符串是服务器引用要在响应中返回的对象的方式。 这些值包括 GET 请求的_dc=1417023448549&db=107&page=2&start=25&limit=25。 因此,服务器知道 GET 请求需要_dc值为 1417023448549、db 值为 107 的对象,依此类推。 当您有 PUT 请求时,您就有xxxxxx.com/php/customers.php/13?_dc=1417022337273 . 我不确定为什么在客户之后还有另一个/.php。 也就是说,客户.php是另一个目录。 你说煎茶正在创建网址。 我的猜测是您在某处配置不正确。

在这里,您可以在浏览器中运行它,也可以使用Firebug查看结果:

roya4u.com/roya_se_mobile

尝试编辑联系人,然后点击"绿色"按钮(保存

当我将链接从FIREBUG复制到浏览器中的新选项卡时,它可以工作:

http://roya4u.com/Roya_SE_Mobile/php/customers.php/13?_dc=1417027029131

我收到回复

!!

这很奇怪??