方法不允许 — 从 Angularjs 中的请求标头中删除 Access-Control-Request-Method
Method not allowed — removing Access-Control-Request-Method from request headers in Angularjs
我目前正在另一个域上的 Restful API 上尝试使用 Angular ngResource
进行DELETE
类型的请求。 GET
和PUT
工作正常。 DELETE
适用于高级休息客户端Chrome扩展程序,但在尝试使用Angular $resource
时不起作用。
我注意到发送的标头有所不同,它们是这两个:
Access-Control-Request-Headers:accept
Access-Control-Request-Method:DELETE
当我尝试在高级 Rest 客户端中添加这两个标头时,我在 Chrome 控制台中收到以下错误:
Refused to set unsafe header "Access-Control-Request-Headers"
Refused to set unsafe header "Access-Control-Request-Method"
最后,当我使用 Angular 尝试DELETE
请求时,服务器(通常配置为接受跨域请求(发送以下响应(状态200
和方法使用OPTIONS
(:
Access-Control-Allow-Headers:*
Access-Control-Allow-Methods:*
Access-Control-Allow-Origin:*
Allow:PUT,DELETE
Cache-Control:private, must-revalidate
Connection:close
Content-Length:0
Content-Type:text/html; charset=UTF-8
Date:Thu, 12 Feb 2015 12:08:47 GMT
ETag:"d41d8cd98f00b204e9800998ecf8427e"
Server:Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/0.9.8o DAV/2 PHP/5.5.20
但是我得到错误:
XMLHttpRequest cannot load [URL]. Method DELETE is not allowed by Access-Control-Allow-Methods.
我怀疑第一个提到的两个标题是问题的原因。它们是问题所在吗,如果是,我该如何删除它们?
如果它有帮助,我尝试配置我的$httpProvider
(如其他问题/答案所示(,目前如下所示:
delete $httpProvider.defaults.headers.common['X-Requested-With'];
delete $httpProvider.defaults.headers.common['Access-Control-Request-Method'];
delete $httpProvider.defaults.headers.common['Access-Control-Request-Headers'];
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
您的服务器应该为响应设置 Access-Control-Allow-Methods 标头,而不是 Allow 标头,如下所示:
Access-Control-Allow-Methods:PUT,DELETE
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 如何从 HTML 查询中删除项目
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 在不知道深度或父属性的情况下从对象中删除属性
- 方法不允许 — 从 Angularjs 中的请求标头中删除 Access-Control-Request-Method