使用angular- $ resource或$ http获得简单的获取

时间:2013-08-16 10:29:32

标签: angularjs

我在我的一个api上获得json结果时遇到了问题:

尝试使用以下代码调用它:

var url = 'domain.com/'
var query = $http({
    method: 'GET',
    url: url,
    headers: {'Content-Type': 'application/json'}
});
console.log(query);

我的控制器上有一个简单的$ http get

var url = $http.get('http://domain.com');
console.log(url);

总是给我

  

XMLHttpRequest无法加载http://domain.com。 Access-Control-Allow-Origin不允许使用Origin域。

然后我尝试将方法类型从GET更改为JSONP但是给了我一个

Uncaught SyntaxError: Unexpected token :

如果你使用网络浏览器查看网址它是一个有效的json对象,那就太怪了。

1 个答案:

答案 0 :(得分:1)

http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

您通过尝试从传递调用JS的域外部域中的XHR数据来违反单一来源策略。 使用XHR检索的数据必须来自提供站点的同一主机和端口。 这是为了防止跨站点脚本攻击。

您可以使用JSONP解决此问题(我怀疑您的JSONP调用存在单独的问题,发布吗?)或者在API的响应中包含正确的标头,Access-Control-Allow-Origin:*;