Angular $ http不读取标题

时间:2015-06-29 22:07:33

标签: javascript angularjs api laravel

我为我的电子商务应用程序(内置Laravel)构建了一个小API,因此我可以将它与我在Angular中构建的前端一起使用。我将API放在子域上并添加Access-Control-Allow-Origin标头以允许来自api源的调用。

问题是Angular似乎正在从请求中删除所有标头,因此它永远不会看到我的CORS标头。我的REST API客户端正确查看标头。我尝试使用基本的XMLHttpRequest,它正确地看到了标题。但是在Angular中,查看来自$http.get()的回复,我无法看到CORS标题,或者我尝试过的任何其他标题。

这是我的服务的样子:

angular.module('SFAdmin').factory('Category', function($http){

  $http.defaults.useXDomain = true; 
    var baseUrl = 'http://api.example.com/categories';

    return {
        query: function(){
            return $http.get(baseUrl);
        },
        get: function(id){
            return $http.get(baseUrl + '/' + id);
        },
        create: function(data){
            return $http.post(baseUrl, data);
        },
        update: function(data){
            return $http.put(baseUrl + data.id, data);
        },
        delete: function(id){
            return $http.delete(baseUrl + '/' + id);
        },
        trash: function(){
            return $http.get(baseUrl + '/trash');   
        }
    }
});

我的类别控制器:

angular.module('SFAdmin').controller('CategoriesIndexController', function(Category, $scope, $location){

    Category.query().success(function(data){
        $scope.categories = data;
    }).error(function(d, s, h){
      console.log(d, s, h());
    });

});

我的api路线发送了这个:

$app->get('/categories/', function(){
            $content = (new App\Http\Controllers\CategoryController())->index();  // index() gets all categories.
            return response($content)
                ->header('Access-Control-Allow-Origin', '*');
});

如何让Angular正确查看传入的标题?

0 个答案:

没有答案