angularjs1.4 CORS 失败
Posted
技术标签:
【中文标题】angularjs1.4 CORS 失败【英文标题】:angularjs1.4 CORS failed 【发布时间】:2015-10-04 14:56:42 【问题描述】:我正在使用 AngularJS 1.4.3。这是我的代码:
angular
.module('app', [])
.run(run);
function run($http)
a = $http(
method: "GET",
url: 'http://127.0.0.1:8080/test',
data:
);
console.log(a);
使用浏览器或邮递员可以得到正确的。但是上面的代码给出了
XMLHttpRequest 无法加载 http://127.0.0.1:8080/test。请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:8000' 因此不允许访问。
重点是,我可以使用 GET 方法通过应用程序获取结果。但是使用代码是行不通的。我做错了什么?
【问题讨论】:
您可以使用 grunt-proxy 设置代理或在服务器端允许 CORS。如何做到这一点,取决于服务器技术。 【参考方案1】:重点是,我可以使用 GET 方法通过应用程序获取结果。
在这种情况下,只有应用程序和服务器,没有其他人。仅涉及两个实体。
但是使用代码是行不通的。
您有两个不同的网站(localhost:8000 和 localhost:8080),浏览器不知道 8000 提供的 javascript 是否可以信任 8080 愿意提供给用户的数据。
我做错了什么?
您没有在来自 8080 的 HTTP 响应中提供 Access-Control-Allow-Origin
标头来告诉浏览器可以信任 8000 的数据。
另见:
The specification The MDN documentation【讨论】:
+1。顺便说一句,“在那种情况下,只有应用程序和服务器,没有其他人。只涉及两个实体。” - 我认为提问者意味着他/她可以访问该网站通过浏览器之类的应用程序,而不是指他/她正在开发的网络应用程序。 @Agop — 是的,这就是我所说的。 你的解释很优雅!我想知道,由于 8000 拒绝响应,因为它不受信任,有没有办法仅在 8000 方面克服这个问题?以上是关于angularjs1.4 CORS 失败的主要内容,如果未能解决你的问题,请参考以下文章