如何在角度js中启用CORS

时间:2015-03-25 18:33:21

标签: javascript angularjs https

我有一个controller.js

ListNewsCtrl.$inject = ['$http', '$scope', 'datacontext'];
function ListNewsCtrl( $http, $scope, datacontext) {
    $scope.names = [];
    $http.get("http://www.w3schools.com/website/Customers_JSON.php")
                .success(function (response) {$scope.names = response;console.log($scope.names)});
};

我得到了我想要的数据。但是当我换到另一个站点时,我得到了以下信息:

XMLHttpRequest cannot load https://URL. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3424' is therefore not allowed access. The response had HTTP status code 404.

我尝试访问的信息不需要访问令牌?

4 个答案:

答案 0 :(得分:1)

我的回答的解决方案是:

http://blog.novanet.no/angularjs-with-jsonp-and-how-i-get-to-work-on-time/#2

但是,我收到此错误:Uncaught SyntaxError:意外的令牌:我得到小的语法问题。但至少我可以看到我的数据

答案 1 :(得分:0)

CORS已在服务器端启用。您请求的域不允许CORS请求,这不是您可以在客户端编辑或配置的。

如果域名允许使用CORS,那么您在localhost上托管本地Web服务器所使用的任何内容都不允许使用CORS。

答案 2 :(得分:0)

如果允许跨站点请求,请尝试

$http.jsonp("http://www.w3schools.com/website/Customers_JSON.php")
    .success(function(data){
        console.log(data);
});

答案 3 :(得分:0)

我不会说它是一个完美的方法,但更好的解决方法为cors。

雅虎!查询语言是一种富有表现力的SQL语言,允许您跨Web服务查询,过滤和连接数据。关于Yahoo YQL的好处是它启用了CORS:)

Client -> YQL -> API Server

在此处运行示例

$.getJSON("http://query.yahooapis.com/v1/public/yql",
  {
    q:      "select * from json where url=\"https://erikberg.com/mlb/standings.json\"",
    format: "json"
  },
  function (data) {
    if (data.query.results) {
      alert(data.query.results.json.standing);
    } else {
      alert('no such code: ' + code);
    }
  }
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Here is a cool Tutorial

这至少会以不同的方式解决你的角色问题。

快乐帮助!