【问题标题】:Bypass Cross-origin resource sharing (CORS) in Angular $http.get service绕过 Angular $http.get 服务中的跨域资源共享 (CORS)
【发布时间】:2015-03-08 22:06:53
【问题描述】:

我有一个使用 $http.get 的 Angular 服务,如下所示

var myService = angular.module('myService', []);
myService.factory('myFactory', ['$http',function($http) {
  return {
    getResponse: function(callback) {
      return $http.get("url")
        .success(callback)
        .error(function(error) {
            console.log(error);
        });
    }
  };
}]);

但我明白了

XMLHttpRequest cannot load http://8000/. Origin http://localhost is not allowed by Access-Control-Allow-Origin

我可以做些什么来获得正确的响应并解决这个 CORS 问题。

【问题讨论】:

    标签: angularjs cors


    【解决方案1】:

    因此,绕过此 CORS 错误的一种快速方法是获取 JSONP 样式的响应。它使用得到的响应调用回调函数。我们可以尝试在 url 上附加 JSON_CALLBACK 作为查询,并将 $http.get 方法更改为 $http.jsonp 方法。所以你会想做类似的事情;

    var myService = angular.module('myService', []);
        myService.factory('myFactory', ['$http',function($http) {
          return {
            getResponse: function(callback) {
              return $http.jsonp("url&callback=JSON_CALLBACK")
                .success(callback)
                .error(function(error) {
                    console.log(error);
                });
            }
          };
        }]);
    

    我希望它适用于任何需要它的人。

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 2021-05-16
      • 2018-05-04
      • 2016-11-06
      • 2014-01-18
      • 2014-10-08
      • 2014-03-20
      • 2017-10-06
      相关资源
      最近更新 更多