Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firefox和IE中的CORS问题(在Chrome中运行良好)_Javascript_Angularjs_Internet Explorer_Firefox_Asp.net Web Api - Fatal编程技术网

Javascript Firefox和IE中的CORS问题(在Chrome中运行良好)

Javascript Firefox和IE中的CORS问题(在Chrome中运行良好),javascript,angularjs,internet-explorer,firefox,asp.net-web-api,Javascript,Angularjs,Internet Explorer,Firefox,Asp.net Web Api,我在Firefox和IE中遇到了与CORS相关的错误,但在Chrome中一切都运行得很好 我的客户打来的两个电话是 Facebook在Chrome和Firefox中运行,但在IE11中失败。我正在打电话确认他们的令牌仍然有效。在IE中,我收到以下错误:XMLHttpRequest请求所需的跨源资源共享(CORS) 第二个调用是我的服务器,它在任何地方都启用了CORS(代码粘贴在下面)。有趣的是,这一切都在本地主机上,所以应该是同一台服务器。我收到的错误是“同源策略不允许在读取远程资源。可以通过将

我在Firefox和IE中遇到了与CORS相关的错误,但在Chrome中一切都运行得很好

我的客户打来的两个电话是

  • Facebook在Chrome和Firefox中运行,但在IE11中失败。我正在打电话确认他们的令牌仍然有效。在IE中,我收到以下错误:XMLHttpRequest请求所需的跨源资源共享(CORS)
  • 第二个调用是我的服务器,它在任何地方都启用了CORS(代码粘贴在下面)。有趣的是,这一切都在本地主机上,所以应该是同一台服务器。我收到的错误是“同源策略不允许在读取远程资源。可以通过将资源移动到同一域或启用CORS来修复此问题。”
  • CORS相关Web API代码

            var cors = new EnableCorsAttribute("*","*","*");
            config.EnableCors(cors);
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
    
    更新1

    嗯,它在部署到Azure时可以工作,但在本地主机上不能工作。部署后,这两个问题都得到了完全解决。非常奇怪,非常糟糕,因为我需要能够在本地测试这些东西。但至少它能起作用。。。可能会添加一些线索来解决问题

    更新2


    在部署(即使是客户端和服务器位于不同域上的那些域)并在本地主机上发生故障时,也能持续工作。我还没能缩小它为什么在本地失败的范围。清除缓存并删除本地文件,问题仍然存在。完全向CORS开放我的服务器,问题仍然存在。我唯一能猜到的是Azure如何处理跨Azure请求,从而在部署时绕过CORS问题。我真的需要让它在本地工作以进行测试。

    试试这个。不确定,但可能会解决问题

    1) 在web api项目中打开nuget package manager控制台

    2) 键入安装包Microsoft.AspNet.WebApi.Cors并安装它

    3) 成功安装后,键入更新包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(起源:,标头:,方法:“*”),以允许控制器接受所有类型的起源、标头和方法。

    您是否从本地的
    http
    发出请求?@charlietfl https到本地主机上的https,客户端和服务器位于不同的端口上