我在Firefox和IE中遇到了与CORS相关的错误,但一切都在Chrome中完美运行。
来自我的客户的两个电话是
CORS相关的Web API代码
var cors = new EnableCorsAttribute("*","*","*");
config.EnableCors(cors);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
更新1
嗯,它在部署到Azure时有效,但在localhost上没有。部署后,这两个问题都得到了完全解决。非常奇怪,非常糟糕,因为我需要能够在本地测试这些东西。但至少它有点工作......可能会增加一些线索来解决。
更新2
部署时一致工作(即使是不同域上的客户端和服务器)并且在localhost上失败。我无法缩小为什么它在本地失败。清除缓存和删除的本地文件,问题仍然存在。完全打开我的服务器到CORS,问题仍然存在。我唯一可以猜到的是Azure如何处理跨Azure请求,从而绕过部署时的CORS问题。我真的需要让它在本地工作,但要进行测试。
答案 0 :(得分:0)
试试这个。不确定但可能会解决这个问题。
1)在您的web api项目中打开nuget包管理器控制台。
2)键入Install-Package Microsoft.AspNet.WebApi.Cors并安装
3)成功安装后,键入Update-Package Microsoft.AspNet.WebApi并安装它。
4)请检查您的web.config文件以获取以下条目。如果他们在那里然后请删除/评论他们。
<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, OPTIONS" />
5)现在来到您的控制器文件并导入命名空间。使用System.Web.Http.Cors;
6)现在在控制器级别输入[EnableCors(起源:“”,标题:“”,方法:“*”)]以允许所有类型的来源,标题和方法被控制者接受。