斜角 | CustomPOST:我无法发出 CORS POST 请求,正文中有 json 数据对象
Posted
技术标签:
【中文标题】斜角 | CustomPOST:我无法发出 CORS POST 请求,正文中有 json 数据对象【英文标题】:Restangular | CustomPOST : I am unable to make a CORS POST request, with json data object in the body 【发布时间】:2015-11-12 17:50:01 【问题描述】:我正在尝试通过以下方式使用 Restangular 发出 CORS POST 请求:
//data is a json object
var urlToPost = '/api/deal/update/'+dealId;
return Restangular.all(urlToPost).customPOST(data, '', ,
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "POST, GET, PUT, DELETE, OPTIONS"
);
当我拨打电话时,控制台上出现以下错误:
XMLHttpRequest cannot load http://55.76.122.145:8080/hulk/api/deal/update/55cd93bd20ce9744aeebff3a. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9001' is therefore not allowed access.
在“网络”选项卡中,我可以看到使用status 200
的successful
调用被OPTION
方法触发。
怎么办?我做错了什么?
【问题讨论】:
【参考方案1】:错误消息为您说明了这一点:
请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:9001' 因此不允许访问。
服务器必须使用 response 对 OPTION 请求response,其中包括一个 Access-Control-Allow-Origin
标头,告诉浏览器提供允许 javascript 访问。
Access-Control-Allow-Origin
和 Access-Control-Allow-Methods
不是 request 标头。你不能编写允许自己从其他人的网站读取数据的 JavaScript。那太傻了。
【讨论】:
所以,我需要在服务器端进行更改,不是吗?但是我从 OPTION 调用中得到了 200 状态成功响应。这是否意味着服务器端一切正常? “所以,我需要在服务器端进行更改,不是吗?” - 是的。 “但是我从 OPTION 调用中得到了 200 状态成功响应。这是否意味着服务器端一切正常?” — 这意味着就服务器而言,一切都很好。浏览器然后会“哦,服务器也没有说我有权向其他站点提供响应”所以我不会。以上是关于斜角 | CustomPOST:我无法发出 CORS POST 请求,正文中有 json 数据对象的主要内容,如果未能解决你的问题,请参考以下文章
Testing.Fakes异常:无法从COR_PROFILER_PATH和COR_PROFILER环境变量解析探查器路径