在本文中,我们将带你了解CORS错误:请求标题字段在飞行前响应中不允许Access-Control-Allow-Headers进行授权在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的Acc
在本文中,我们将带你了解CORS错误:请求标题字段在飞行前响应中不允许Access-Control-Allow-Headers进行授权在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的Access Control-Allow-Headers不允许使用Ajax请求头域、Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Headers、Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Headers、Access-Control-Allow-Origin 标头如何工作? - How does Access-Control-Allow-Origin header work?。
本文目录一览:- CORS错误:请求标题字段在飞行前响应中不允许Access-Control-Allow-Headers进行授权
- Access Control-Allow-Headers不允许使用Ajax请求头域
- Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Headers
- Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Headers
- Access-Control-Allow-Origin 标头如何工作? - How does Access-Control-Allow-Origin header work?
CORS错误:请求标题字段在飞行前响应中不允许Access-Control-Allow-Headers进行授权
我正在尝试将请求从一个本地主机端口发送到另一个本地主机端口。我 在前端 使用 angularjs,在后端 使用 node 。
由于这是 CORS 请求,因此在node.js中,我正在使用
res.header(''Access-Control-Allow-Origin'', ''*'');res.header(''Access-Control-Allow-Methods'', ''GET, POST, PUT, DELETE, PATCH'');res.header(''Access-Control-Allow-Headers'', ''Origin, X-Requested-With, Content-Type, Accept, Authorization'');
在angular.js服务文件中,我正在使用
return { getValues: $resource(endpoint + ''/admin/getvalues'', null, { ''get'': { method: ''GET'', headers:{''Authorization'':''Bearer''+'' ''+ $localStorage.token} } }),}
我收到以下错误
请求标头字段在飞行前响应中,Access-Control-Allow-Headers不允许授权。
请帮忙!
答案1
小编典典您还必须在允许的标题中添加选项。浏览器先发送预检请求,然后再发送原始请求。见下文
res.header(''Access-Control-Allow-Methods'', ''GET,PUT,POST,DELETE,PATCH,OPTIONS'');
从源https://developer.mozilla.org/en-
US/docs/Web/HTTP/Methods/OPTIONS
在CORS中,使用OPTIONS方法发送预检请求,以便服务器可以响应是否可以使用这些参数发送请求。的
Access-Control-Request-Method
报头通知的服务器作为预检请求的一部分被发送的实际请求时,它将被与POST请求方法发送。的Access-Control-Request-Headers
报头通知服务器被发送的实际请求时,它将被与发送X-PINGOTHER
和Content-Type
自定义首部。服务器现在有机会确定在这种情况下是否希望接受请求。
已编辑
您可以通过使用npmjs.com/package/cors npm package
来避免这种手动配置。我也使用了这种方法,它既简单又清晰。
Access Control-Allow-Headers不允许使用Ajax请求头域
错误:
XMLHttpRequest cannot load http://www.dnndev.me/mysite/builder/API/echo?message=Hello+World&_=1412707749275. Request header field Key is not allowed by Access-Control-Allow-Headers.
请求标题:
Remote Address: 127.0.0.1:80 URL: http://www.dnndev.me/mysite/builder/API/echo?message=Hello Request Method: OPTIONS Status Code: 200 OK Accept: */* Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Access-Control-Request-Headers: accept,key Access-Control-Request-Method: GET Connection: keep-alive Host: www.dnndev.me User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/37.0.2062.124 Safari/537.36
回应标题:
Access-Control-All-Headers: Origin,X-Requested-With,Content-Type,Accept,Key Access-Control-Allow-Methods: * Access-Control-Allow-Origin: * Cache-Control: no-cache Content-Length: 13 Content-Type: application/json; charset=utf-8 Date: Tue,07 Oct 2014 18:49:10 GMT Expires: -1 Pragma: no-cache Server: Microsoft-IIS/7.5
一般来说,这个错误是由于在“访问控制全标题”中没有适当的标题引起的.但是,我正在发送正确的响应以允许ajax继续请求.它只是拒绝.
这是我的ajax调用方法:
$.ajax({ type: 'GET',url: 'http://www.dnndev.me/mysite/builder/API/echo',dataType: 'json',data: { message: 'Hello' },crossDomain: true,headers: { 'Key': 'Bearer 7680ff6e-1362-4236-a9cd-c6bc8b6f13ea' },success: function (result) { console.log(result); } });
可能是显而易见的,但这只会发生在跨域请求上,只有当我包含自定义标题(因此指示ajax才能做一个OPTIONS).
Access-Control-All-Headers: Origin,Key
而如果你(或写这个服务器的人)仔细阅读CORS,他应该回答:
Access-Control-Allow-Headers: Origin,Key
现在,客户端客户端可以继续使用Key自定义标头.
据说,承载对于在授权标题中发送的OAuth 2是非常具体的.使用钥匙似乎是一个可怕的违反RFC和东西,并有一个轮子改造.
Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Headers
我正在尝试使用发布请求将文件发送到我的服务器,但是当它发送时会导致错误:
Access-Control-Allow-Headers 不允许请求标头字段 Content-Type。
所以我用谷歌搜索了错误并添加了标题:
$http.post($rootScope.URL,{params: arguments},{headers: {
"Access-Control-Allow-Origin" : "*","Access-Control-Allow-Methods" : "GET,POST,PUT,DELETE,OPTIONS","Access-Control-Allow-Headers": "Content-Type,Access-Control-Allow-Headers,Authorization,X-Requested-With"
}
然后我得到错误:
Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Origin
所以我用谷歌搜索,我能找到的唯一类似问题是提供了一个半答案,然后作为离题关闭。我应该添加/删除哪些标题?
Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Headers
我正在尝试使用发布请求将文件发送到服务器,但是在发送请求时会导致错误:
Access-Control-Allow-Headers不允许请求标头字段Content-Type。
所以我搜索了错误并添加了标题:
$http.post($rootScope.URL, {params: arguments}, {headers: { "Access-Control-Allow-Origin" : "*", "Access-Control-Allow-Methods" : "GET,POST,PUT,DELETE,OPTIONS", "Access-Control-Allow-Headers": "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"}
然后我得到错误:
Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin
所以我用谷歌搜索,唯一能找到的类似问题是半答案,然后关闭主题。我应该添加/删除哪些标题?
答案1
小编典典服务器 (POST请求发送到的 服务器Access-Control-Allow-Headers
) 的响应中
需要包含标头(等)。将它们放入客户的请求中无效。
这是因为服务器需要指定它接受跨域请求(并允许Content-Type
请求标头,依此类推)–客户端无法自行决定给定服务器应允许CORS。
Access-Control-Allow-Origin 标头如何工作? - How does Access-Control-Allow-Origin header work?
问题:
Apparently, I have completely misunderstood its semantics. 显然,我完全误解了它的语义。 I thought of something like this: 我想到了这样的事情:
- A client downloads javascript code MyCode.js from http://siteA - the origin . 客户端从 http://siteA- origin 下载 javascript 代码 MyCode.js。
- The response header of MyCode.js contains Access-Control-Allow-Origin: http://siteB , which I thought meant that MyCode.js was allowed to make cross-origin references to the site B. MyCode.js 的响应标头包含 Access-Control-Allow-Origin:http:// siteB ,我认为这意味着 MyCode.js 被允许对站点 B 进行跨域引用。
- The client triggers some functionality of MyCode.js, which in turn make requests to http://siteB, which should be fine, despite being cross-origin requests. 客户端触发了 MyCode.js 的某些功能,该功能继而向 http://siteB 发出了请求,尽管这是跨域请求,但仍然可以。
Well, I am wrong. 好吧,我错了。 It does not work like this at all. 它根本不像这样工作。 So, I have read Cross-origin resource sharing and attempted to read Cross-Origin Resource Sharing in w3c recommendation 因此,我阅读了跨域资源共享,并尝试阅读 w3c 建议中的跨域资源共享
One thing is sure - I still do not understand how am I supposed to use this header. 可以确定的一件事 - 我仍然不明白我应该如何使用此标头。
I have full control of both site A and site B. How do I enable the javascript code downloaded from the site A to access resources on the site B using this header? 我对站点 A 和站点 B 都拥有完全控制权。如何使用此标头使从站点 A 下载的 javascript 代码能够访问站点 B 上的资源?
PS 聚苯乙烯
I do not want to utilize JSONP. 我不想利用 JSONP。
解决方案:
参考一: https://stackoom.com/question/id4F/Access-Control-Allow-Origin 标头如何工作参考二: https://oldbug.net/q/id4F/How-does-Access-Control-Allow-Origin-header-work
关于CORS错误:请求标题字段在飞行前响应中不允许Access-Control-Allow-Headers进行授权的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Access Control-Allow-Headers不允许使用Ajax请求头域、Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Headers、Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Headers、Access-Control-Allow-Origin 标头如何工作? - How does Access-Control-Allow-Origin header work?等相关知识的信息别忘了在本站进行查找喔。
本文标签: