我正在使用asp.net WebAPI和Angular。当我从Angular打电话给我的WebAPI上的方法时,我在Chrome中遇到错误(它在IE中运行正常),我可以看到Fiddler这个调用是作为" OPTIONS" (我只使用$ http.post和$ http.get),在IE中它是作为帖子或获取。
我尝试使用请求配置标头('内容类型':' text / plain'),然后它在Chrome中正常运行。但问题是我正在使用也在标题中的授权,当我在标题中添加授权时,内容类型的黑客不再工作。
我还尝试添加NuGet包" Cors"到WebAPI(并在控制器中启用它[EnableCors(" "," "," *")]) ,但它没有做任何改变。
是否有人有解决此问题的方法?
非常感谢提前: - )
答案 0 :(得分:0)
使用cors时,您是否也在Global.asax的Application_Start方法中添加代码?不只是在行动中添加EnableCorsAttribute
GlobalConfiguration.Configuration.EnableCors();
或者您不需要使用cors lib,当您在web.config
的节点system.webServer
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />
</customHeaders>
</httpProtocol>
答案 1 :(得分:0)
您可能想要添加一个httpInterceptor,并按照类似问题this answer中的描述添加Access-Control标头