Angularjs 请求被重定向到';https://..com/site/login?', 这是不允许的跨来源请求,需要飞行前
在发布这个问题之前,我已经检查了大多数堆栈溢出问题,但我没有得到答案 我正在尝试访问一个客户端api,该api将执行Oauth身份验证,因此当我调用该api时,它应该会弹出一个类似fb auth的身份验证弹出窗口,但我最终在chrome控制台中出错,如下所示 XMLHttpRequest无法加载?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
作用域=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有人建议尝试将头放在客户端,所以我刚刚尝试过。有关如何解决此问题的详细信息,请参阅中的答案。另外,正如这里所指出的,规范中不再有对重定向的限制,但浏览器需要更新其实现以匹配规范更改。