如何使用AngularJs 1使用GET请求显式发送cookie

时间:2018-03-19 06:34:21

标签: angularjs angular-http angular-cookies

我正在使用angularjs - 1.6。

我需要向服务器发送一个http GET请求以及明确的cookie。

我的意思是,我知道一旦我们成功完成授权,就会自动向每个http请求发送cookie。

但在我的情况下,我需要明确发送它。我怎样才能实现这一目标。以下是https代码:

$cookies.put('JSESSIONID', 'lu5xxkdqgjk5qpv07ufhvln3');
 $http({
         url:"http://10.11.0.11:4440/api/21/projects",
          method:"GET",
          headers: { 'Accept': 'application/json',
                     'X-Rundeck-Auth-Token':'lu5xxkdqgjk5qpv07ufhvln3'},
         "Access-Control-Allow-Credentials" : true
      }).then(function(response) {
          $scope.response = response.data;
          alert("Report fot succeed"+response.data);
      }, function(response) {
          alert("error response:"+response.data);
      }); 

1 个答案:

答案 0 :(得分:1)

您可以通过多种方式完成此操作。

如果您坚持认为它应该是GET,您可以将您的cookie的值发送为标题之一:

headers: {'Cookie': 'Value', ...}

当然,您之前可以获取cookie的值,然后将其分配给某个变量,然后将'Cookie'标头设置为此值。

headers: {'Cookie': myVariable, ...}

请记住设置

 $httpProvider.defaults.withCredentials = true;

.config文件中。

如果要发送的数据更复杂,您应该考虑将GET更改为POST,因为提到了POST来发送数据,例如:

   this.login = function (loginInfo) {

        return $http({
            url: 'your url',
            headers: {
                'Content-Type' : 'your content type'
                // other headers..
            },
            method: 'POST',
            data: {
                user: {
                    name: loginInfo.nick,
                    password: loginInfo.password
                }
            }
        })
        .then(function(response) {
             console.log('success');
        });
   }