我正在使用AngularJS开发一个Web应用程序。
应用程序通过以下方式实现:
在我的前端,在主控制器中,我使用$ cookieStore创建一个cookie,这样:
// Setting sessionID in the cookie
$cookieStore.put('sessionID', $scope.contextData.sessionId);
现在,我想将此cookie的信息发送到我调用的通用后端服务。例如,我的一个电话有这种形式:
$http({
method: "GET",
url: urlBase + "/context/person"
}).success(function(result, status, headers, config) {
$scope.currentPerson = result;
});
如何发送Cookie? 提前谢谢。
答案 0 :(得分:2)
您应该设置参数withCredentials
,请参阅docs
默认情况下,调用不使用Cookie。由于这是一个简单的GET请求,因此不会预检,但浏览器将拒绝任何没有Access-Control-Allow-Credentials:true标头的响应,并且不会使响应可用于调用Web内容。
我假设您在服务器的同一域中运行脚本,因为
由于只有在您的域上运行的JavaScript才能读取Cookie,因此您的服务器可以确保XHR来自您域上运行的JavaScript。不会为跨域请求设置标头。
答案 1 :(得分:0)
$http({
method: "POST",
url: urlBase + "/context/person"
}).success(function(result, status, headers, config) {
$scope.currentPerson = result;
});
或者您可以使用角度快捷方式post方法:
$http.post('/someUrl', data, config).then(successCallback, errorCallback);
POST
方法会将cookie发送到后端。在后端,您可以使用JSON.parse(req.cookies)
来获取Cookie。