Angularjs 请求被重定向到';https://..com/site/login?', 这是不允许的跨来源请求,需要飞行前

Angularjs 请求被重定向到';https://..com/site/login?', 这是不允许的跨来源请求,需要飞行前,angularjs,google-chrome,http,cors,Angularjs,Google Chrome,Http,Cors,在发布这个问题之前,我已经检查了大多数堆栈溢出问题,但我没有得到答案 我正在尝试访问一个客户端api,该api将执行Oauth身份验证,因此当我调用该api时,它应该会弹出一个类似fb auth的身份验证弹出窗口,但我最终在chrome控制台中出错,如下所示 XMLHttpRequest无法加载? 作用域=XXXX&重定向\u uri=。 请求已重定向到 '', 这是不允许的跨来源请求,需要飞行前 为了安全起见,我刚刚用XXX屏蔽了一些值。我的请求如下所示 $http({ me

在发布这个问题之前,我已经检查了大多数堆栈溢出问题,但我没有得到答案

我正在尝试访问一个客户端api,该api将执行Oauth身份验证,因此当我调用该api时,它应该会弹出一个类似fb auth的身份验证弹出窗口,但我最终在chrome控制台中出错,如下所示

XMLHttpRequest无法加载?
作用域=XXXX&重定向\u uri=。 请求已重定向到 '', 这是不允许的跨来源请求,需要飞行前

为了安全起见,我刚刚用XXX屏蔽了一些值。我的请求如下所示

 $http({
        method : 'GET',

        url : url,
        headers : {
            'Content-Type' : 'application/json',
                "Access-Control-Allow-Origin": "https://api.springrole.com",
                "Access-Control-Allow-Methods":"GET",
                    "Access-Control-Allow-Credentials": true
        }
    }).success(function(data, status, headers, config) {
        $scope.details.response = JSON.stringify(data);

        console.log("success" + data)
    })
如果我删除请求中的标题,我将得到如下所示的错误

请求的服务器上不存在“Access Control Allow Origin”标头 资源。因此,不允许使用源“” 进入


如果您有任何建议或解决方法,我们将不胜感激。

是的,出于安全原因,您将遇到。简而言之,基本上你是在从不同的来源请求/打开一些不太安全的东西。如果需要,您可以在Chrome中通过添加参数
--disable web security
暂时禁用它

所以从终端你可以运行

open-a Google\Chrome--args--disable web security

我经常这样做,所以我只需在我的
.bash\u配置文件中添加和别名,这样我就可以轻松访问它

# Run Insecure Chrome
alias insecure-chrome='open -a Google\ Chrome --args --disable-web-security'
然后在终端我可以直接调用不安全的chrome,chrome就会弹出。如果你看到顶部的安全警告,你就会知道它起作用了。警告是这样的

当然,执行此操作时要小心。我不会在这种模式下上网,但在本地工作你应该很好

对于windows用户,您可以导航到安装和设置Chrome的文件夹

chrome.exe--user data dir=“C:/temp”--禁用web安全


在执行此操作之前,请确保关闭所有Chrome实例,否则它将无法工作。

访问控制标题通常由浏览器自动添加,而不是由您明确设置。您尝试过删除它们吗?@MichaelAaronSafyan如果我删除它们,我会收到以下错误:请求的资源上不存在“访问控制允许来源”标题。因此,不允许对源“”进行访问。此添加标头客户端的方法很有趣。通常,我见过
访问控制允许源站
头集服务器端控制对给定资源的访问…@War10ck有人建议尝试将头放在客户端,所以我刚刚尝试过。有关如何解决此问题的详细信息,请参阅中的答案。另外,正如这里所指出的,规范中不再有对重定向的限制,但浏览器需要更新其实现以匹配规范更改。