Dev*_*ran 5 google-chrome http cors angularjs
在发布这个问题之前,我已经完成了大部分的堆栈溢出问题,但我没有得到答案
我正在尝试访问一个客户端api,它将进行Oauth身份验证,所以当我调用api它应该抛出一个类似于fb auth的身份验证的弹出窗口,但我最终在我的chrome控制台中出现错误,如下所示
XMLHttpRequest无法加载https://api.springrole.com/authorize?
scope = XXXX&redirect_uri = http:// localhost:8080/CheckRest/springrole.html&response_type = XXXX&client_id = XXXXXXXX.该请求被重定向到" https://springrole.com/site/login?api_login=1&scope=XXXX&state=&error=invalid_request ",这对于需要预检的跨源请求是不允许的.
为了安全起见,我刚刚用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)
})
Run Code Online (Sandbox Code Playgroud)
如果我删除请求中的标题我得到以下显示的错误
请求的资源上不存在"Access-Control-Allow-Origin"标头.因此,不允许来源" http:// localhost:8080 "访问.
任何建议或工作将不胜感激.
是的,您遇到了出于安全原因而制定的同源策略。简而言之,基本上您正在请求/打开来自不同来源的东西,这不是很安全。如果需要,您可以通过添加参数在 Chrome 中暂时禁用它--disable-web-security。
所以从终端你可以运行
open -a Google\ Chrome --args --disable-web-security
我经常这样做,所以我最终只是添加了别名,.bash_profile这样我就可以轻松访问它
# Run Insecure Chrome
alias insecure-chrome='open -a Google\ Chrome --args --disable-web-security'
Run Code Online (Sandbox Code Playgroud)
然后在终端中我可以打电话insecure-chrome,Chrome 就会弹出。如果您看到顶部的安全警告,您就会知道它有效。警告看起来像这样

当然,强制性警告是这样做时要小心。我不会在这种模式下上网,但在本地工作应该没问题。
对于 Windows 用户,您可以导航到安装并设置 Chrome 的文件夹
chrome.exe --user-data-dir="C:/temp" --disable-web-security
确保在执行此操作之前关闭所有 Chrome 实例,否则它将无法工作。
| 归档时间: |
|
| 查看次数: |
10908 次 |
| 最近记录: |