angularjs $ resource JSONP不起作用

时间:2015-02-11 15:23:02

标签: angularjs resources jsonp

我创建了这个ListFactory

factory('ListFactory', ['$resource', function ($resource) {
//   var Chiamate = $resource('http://samedomain.com/file.json', {}, {
   var Chiamate = $resource('http://anotherdomain.com/file.json', {}, {
    query: {
//            method: 'JSONP',
        method: 'GET',
        isArray: true,
        cache : false,
    }
});

return {
  query: function(id) {
        chiamate = Chiamate.query();
     return chiamate;
  }
};
}]);

在控制器中我使用调用工厂         $ scope.results = ListFactory.query();

并进入html我显示结果     {{结果}}

如果我尝试在同一个域http://samedomain.com/file.json下载json文件 使用方法:'GET',=>好的,我看到了资源

如果我尝试在另一个域中下载json文件http://anotherdomain.com/file.json 使用方法:'GET',=>我看到这个错误:

XMLHttpRequest无法加载http://anotherdomain.com/file.json请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://anotherdomain.com/file.json”访问。

如果我尝试在另一个域中下载json文件http://anotherdomain.com/file.json 使用方法:'JSONP',=> KO我没有看到任何错误,但我没有看到结果:

我使用https://ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular.min.js

有什么想法吗?你能帮我个把json文件放到其他域名吗?

1 个答案:

答案 0 :(得分:0)

您需要远程站点的合作才能实现此目的。他们需要使用您的站点名称发送Access-Control-Allow-Origin,否则浏览器将抛出您看到的错误。

请参阅以下stackoverflow问题,其中包含更详细的答案

How does Access-Control-Allow-Origin header work?