在我的项目中,我有一个Web API和一个AngularJS前端。看似随机,我将开始收到 CORS错误消息,告诉我所请求的资源上没有'Access-Control-Allow-Origin'
标头。有时,如果没有对代码进行任何更改,就会发生这种情况。
OPTIONS请求的响应标头是:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:authorization,content-type
Access-Control-Allow-Origin:origin
Content-Length:0
Date:Fri, 09 Sep 2016 17:56:51 GMT
Server:Microsoft-IIS/10.0
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?QzpcVXNlcnNcTWljaGFlbF9TcGl2ZXlcRG9jdW1lbnRzXEdpdEh1Ylxub2Nsb3VkLWNvbm5lY3RcYXBpXHRva2Vu?=
帖子上的请求标题是:
Accept: any
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8
Authorization:Bearer
Cache-Control:no-cache
Connection:keep-alive
Content-Length:68
Content-Type:application/json;charset=UTF-8
Host:localhost:58760
Origin:origin
Pragma:no-cache
Referer:http://localhost:59808/views/
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2854.2 Safari/537.36
如果我查看响应的正文,则表示我的授权类型错误不受支持。
虽然有效载荷在工作时不会改变,但在有效时不会改变。
在网络API中,我使用app.UseCors(Microsoft.Owin.ors.CorsOptions.AllowAll)
文件中的Startup.Auth.cs
启用了 CORS ,并使用[EnableCorsAttribute]
在每个控制器上启用了它。
这些代码在工作时和工作时之间都没有变化。这让我觉得这不是一个代码问题,但我只想确保这一切都是正确的,这里没有任何东西会导致它有时工作而不是其他工作。