斜角 | 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 200successful 调用被OPTION 方法触发。

怎么办?我做错了什么?

【问题讨论】:

【参考方案1】:

错误消息为您说明了这一点:

请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:9001' 因此不允许访问。

服务器必须使用 response 对 OPTION 请求response,其中包括一个 Access-Control-Allow-Origin 标头,告诉浏览器提供允许 javascript 访问。

Access-Control-Allow-OriginAccess-Control-Allow-Methods 不是 request 标头。你不能编写允许自己从其他人的网站读取数据的 JavaScript。那太傻了。

【讨论】:

所以,我需要在服务器端进行更改,不是吗?但是我从 OPTION 调用中得到了 200 状态成功响应。这是否意味着服务器端一切正常? “所以,我需要在服务器端进行更改,不是吗?” - 是的。 “但是我从 OPTION 调用中得到了 200 状态成功响应。这是否意味着服务器端一切正常?” — 这意味着就服务器而言,一切都很好。浏览器然后会“哦,服务器也没有说我有权向其他站点提供响应”所以我不会。

以上是关于斜角 | CustomPOST:我无法发出 CORS POST 请求,正文中有 json 数据对象的主要内容,如果未能解决你的问题,请参考以下文章

Testing.Fakes异常:无法从COR_PROFILER_PATH和COR_PROFILER环境变量解析探查器路径

如何在 UIView 上制作斜角?

入门OJ1067:斜角Ⅳ

WPF 斜角border

Web API 2.0 上的 COR 请求

css 斜角 - 渐变色