我正在使用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);
});
答案 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');
});
}