繁体   English   中英

在PHP REST API上,PUT和DELETE请求失败,但是POST和GET很好

[英]PUT and DELETE requests unsuccessful on PHP REST API, but POST and GET are fine

我已经构建了slimPHP REST API。 这是标题的内容:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true"); 
header('Access-Control-Allow-Headers: origin, content-type, accept');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE, PUT');
header('Access-Control-Max-Age: 86400'); 

但是,当我尝试跨域PUT或DELETE请求时,我得到的只是(示例域):

XMLHttpRequest cannot load http://www.example.com/api/x.
Origin http://www.example.com is not allowed by Access-Control-Allow-Origin. 

如果将Access-Control-Allow-Origin设置为*,为什么会发生这种情况?

Slim Framework文档中

不幸的是,现代浏览器不提供对HTTP PUT请求的本机支持。 要变通解决此限制,请确保您的HTML表单的method属性为“ post”,然后将方法覆盖参数添加到您的HTML表单中,如下所示:

  <form action="/books/1" method="post"> ... other form fields here... <input type="hidden" name="_METHOD" value="PUT"/> <input type="submit" value="Update Book"/> </form> 

如果使用Backbone.js或命令行HTTP客户端,则还可以通过使用X-HTTP-Method-Override标头覆盖HTTP方法。

您可以使用任何需要的请求类型(包括自定义请求(如foo )),但是GET和POST是现代浏览器唯一支持的请求类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM