我正在尝试通过连接到RESTful API,使用AngularJS $http
服务进行ajax调用。
我得到的结果:
XMLHttpRequest无法加载http://hostname:8080/abc/test。没有 '访问控制允许来源'标题出现在请求的上 资源。起源' null'因此不允许访问。
我知道我正在做XMLHttpRequest to a different domain
。所以浏览器阻止了它,因为出于安全原因,它通常允许同一来源的请求。
请求的代码:
$http({
method: 'GET',
cache: true,
url: "http://hostname:8080/abc/test"
}).then(function successCallback(response) {
console.log(response);
}, function errorCallback(response) {
});
我在stackoverflow上阅读了很多问题:
No 'Access-Control-Allow-Origin' header is present on the requested resource error
Access-Control-Allow-Origin header
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '…' is therefore not allowed access
但没有成功。 任何直接的帮助都将非常值得注意。感谢
答案 0 :(得分:3)
我得到了我发布的这个问题的答案,现在工作正常。
我们必须使用 JSONP
来阻止交叉来源政策。
代码:
var url = "http://hostname:8080/abc/test?callback=JSON_CALLBACK";
$http.jsonp(url)
.success(function(data){
console.log(data);
});
答案 1 :(得分:0)
你确定这是在你的代码中吗?
url: http://hostname:8080/abc/test
因为url应该是一个字符串,当然
url: "http://hostname:8080/abc/test"
此外,您必须在您的服务器上允许跨源请求。你如何做到这一点取决于你的服务器。你的服务器写的是什么? PHP的? java吗?哪个框架?等
答案 2 :(得分:0)
我今天早些时候在自定义写的golang服务器上遇到了这个问题。
如果您要连接到自定义编码服务器搜索
“{语言} cors”
如果您正在使用给定的api搜索 “{Server} cors”
你应该找到somethinf