AngularJS如何在Http请求中包含头

时间:2013-10-18 21:10:37

标签: angularjs

我是angularjs的新手。我正在尝试发出需要授权的API请求。我已将它包含在请求的标题中,但它仍然无法正常工作。我确信我的访问令牌正在运行。有什么建议吗?

$scope.fetch = function() {
    $scope.code = null;
    $scope.response = null;
    $http({
        method: $scope.method,
        url: $scope.url,
        cache: $templateCache,
        headers: {
            Authorization: "access token"
        }
    }).
    success(function(data, status) {
        $scope.status = status;
        $scope.data = data;
    }).
    error(function(data, status) {
        $scope.data = data || "Request failed";
        $scope.status = status;
    });
};

2 个答案:

答案 0 :(得分:5)

您可以使用以下

 $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded;charset=utf-8";

它会将上述标题添加到您从应用中发出的每个POST调用中。要添加所有方法的公共标题,请尝试以下操作。

$http.defaults.headers.common['Authorization'] = "Bearer " + user.oauthInfo.access_token;

答案 1 :(得分:0)

您是否在浏览器的网络请求日志中看到了请求的标题?

如果是,是否采用预期的格式?通常是"授权"标题会在它之前有一些东西,例如" Basic" (正如DevPat在上面的评论中提到的)或者#34; Bearer"。这里的内容取决于接收请求的后端系统。

预期标题的示例:

Authorization: Bearer access_token
Authorization: Basic access_token