Angularjs 边缘浏览器-使用跨域请求设置Cookie

Angularjs 边缘浏览器-使用跨域请求设置Cookie,angularjs,cookies,cors,microsoft-edge,Angularjs,Cookies,Cors,Microsoft Edge,作为我正在进行的项目的一部分,我们需要发送一个跨域请求。 我有以下电话: $http({ url: 'http://192.168.1.1/API/Login', method: "POST", data: { password: $scope.pass }, withCredentials: true, cached: false, headers: {

作为我正在进行的项目的一部分,我们需要发送一个跨域请求。 我有以下电话:

$http({
       url: 'http://192.168.1.1/API/Login',
       method: "POST",
       data: {
            password: $scope.pass
       },
       withCredentials: true,
       cached: false,
       headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Accept': 'application/json',
        }
}).then(function successCallback(response) {

}, function errorCallback(response) {

});
当我将请求发送到非源服务器时,我得到以下响应(来自Wireshark):

它在Chrome和FireFox中工作得非常好,但在Edge上有一个CORS错误:

Origin http://myserver.com not found in Access-Control-Allow-Origin header.
顺便说一句,当登录凭据错误并且服务器没有返回“设置Cookie”时,它工作正常!!! 我认为通过使用“withCredentials=true”,我将允许在跨域请求中设置cookies,但这没有帮助(仅在边缘)

有什么想法吗? Edge有没有可能有个bug?我找不到任何打开的东西


“感谢”

具有凭据的用户告知浏览器在请求中发送cookie。请注意,您看到的是POST标题…而不是选项飞行前,这可能是问题所在,因为在POST请求之前,我看不到发送的任何飞行前请求。来自withCredentials的文档:注意:来自不同域的XmlHttpRequest响应无法为其自己的域设置cookie值,除非在发出请求之前将withCredentials设置为true,无论访问控制-标头值如何。确定。。我可能误解了凭证,但所有CORS请求都会有一个飞行前选项。可以在一些开发工具中看到它们,但在其他工具中看不到。安装fiddler并查看那里。基本上,它是检查标题,如果他们不正确,帖子将不会首先发送,Fiddler是危险的…一旦你运行它,它会打开一个本地代理,隐藏所有CORS问题…我花了一些时间来理解这一点。至于飞行前,我正在使用Wireshark,它可以捕获所有网络流量,而不是飞行前……这是CORS规范的一部分,在飞行前有选项。您实际在哪里加载页面。。使用IP或使用
http://localhost
Origin http://myserver.com not found in Access-Control-Allow-Origin header.