在AngularJS中设置标题时拒绝设置Cookie错误

时间:2015-12-19 14:29:36

标签: javascript angularjs cookies

我正在尝试使用AngularJS中的$http来调用Web服务。我为我的模块定义了$httpProvider,为每个HTTP请求添加了某些标头。

我当前设置的所有标头都会反映在发送的请求中(在Google Chrome的“网络”标签中进行检查时)。但是,以下行未设置cookie值的标头

$http.defaults.headers.common['Cookie'] = "test123";

当我使用此行时,我在控制台中收到错误

 "Refused to set unsafe header "Cookie"

当我在网络选项卡中检查请求标头时,Cookie的值类似于

 Cookie:csrftoken=tQATyTRP64PqNjvb9e2znhExGRtcJH6e; DoNotShowFTU=true;
      lastMangerHost=http%3A//localhost%3A8089; showRightRail=true

那么,为什么浏览器不接受我设置的cookie。有人可以帮我解决这个问题。我基本上想要在HTTP POST请求的标头中传递cookie值。

这是我的完整代码。

  var testCookieApp = angular.module('sampleCookieApp', []).run(function($http){

 $http.defaults.headers.common['tenant_id'] = "123";
 $http.defaults.headers.common['cas_filter_user'] = "parth";  
 $http.defaults.headers.common['user_desc'] = 'null';
 $http.defaults.headers.common['Content-Type'] = 'application/json';
 //set cookies with key name 'Cookie' gives error in browser
 $http.defaults.headers.common['Cookie'] = "test123";
 $http.defaults.headers.common['Access-Control-Allow-Credentials'] = true;
 $http.defaults.headers.common['Access-Control-Allow-Origin'] = '*';
 $http.defaults.headers.common['Access-Control-Allow-Headers'] = '*';
 $http.defaults.headers.common['Access-Control-Expose-Headers'] = '*';
 $http.defaults.headers.common['crossDomain'] = true;

 });


 testCookieApp.config(['$httpProvider', function($httpProvider) {

   $httpProvider.defaults.withCredentials = true;

 }]);



testCookieApp.controller("TestCookieController", function ($scope, $http,$q) {

$scope.authenticateUser = function(){
    var deferred = $q.defer();
    $http({
        method: 'GET',
        url: 'http://localhost:8081/RestEasyExample/rest/getData',
        headers: {
            'Content-Type': 'application/json'       
        }
    }).success(function (data) { 
        alert("success");
        deferred.resolve(data);
    }).error(function (data) {
        alert("error");
        deferred.reject('There was an error while making request');       
    });
  };

 });

目前,我获得了成功" webservice运行时的页面,但标题中未设置cookie。

0 个答案:

没有答案