我正在调查跨域问题,我有一些REST服务调用.
Chrome说这个:
Access-Control-Allow-Headers不允许请求头字段x-requested-with
这就是我从网络获得的 – >标题标签:
Chrome说这个:
Access-Control-Allow-Headers不允许请求头字段x-requested-with
这就是我从网络获得的 – >标题标签:
Request URL: rest_url_on_other_domain Request Method:OPTIONS Status Code:200 OK Request Headers: Access-Control-Request-Headers:Origin,x-requested-with,content-type,accept Access-Control-Request-Method:POST Origin:http://localhost:8080 Response Headers Access-Control-Allow-Headers:Content-Type,Accept Access-Control-Allow-Methods:GET,POST Access-Control-Allow-Origin:* Access-Control-Max-Age:1728000 Cache-Control:no-cache,no-store Connection:keep-alive Content-Length:0 Date:Fri,30 Dec 2011 11:29:12 GMT Expires:-1 Pragma:no-cache Server:Nginx/1.0.2
有人可以解释这个HTTP标头吗?有什么问题 – 服务器上的某些标头检查失败或客户端(浏览器)上的某些标头检查失败.这个Access标题的想法是什么?用简单的词语详细解释,只是为了得到我自己学习的其余部分.提前致谢!
解决方法
您所看到的是跨源资源共享预检请求.这种请求的请求方法是OPTIONS.这是浏览器用于请求发送实际请求的权限的请求.你可以在这里了解更多:
http://www.html5rocks.com/en/tutorials/cors/
在这种特殊情况下,浏览器会要求一堆标头(在Access-Control-Request-Headers标头中).现在,作为响应,Access-Control-Allow-Headers标头应包含所有请求的标头.如果有多个请求的标头,浏览器不会抛出任何异常.在此示例中,您的响应标头应如下所示:
Access-Control-Allow-Headers: Origin,accept
所有其他响应标头看起来都不错.一旦服务器发送此响应,浏览器将发送第二个请求,这是对数据的实际请求.