我正在使用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? 提前致谢。
您应该使用withCredentials
设置参数,请参阅docs
默认情况下,调用是在不使用Cookie的情况下进行的。 由于这是一个简单的GET请求,因此不会进行预检,但是浏览器将拒绝任何不具有Access-Control-Allow-Credentials:true标头的响应,并且不会使响应可用于调用Web内容。
我假设您在服务器的同一域中运行脚本,因为
由于只有在您的域上运行的JavaScript才能读取Cookie,因此可以确保您的服务器XHR来自在您的域上运行的JavaScript。 不会为跨域请求设置标头。
$http({
method: "POST",
url: urlBase + "/context/person"
}).success(function(result, status, headers, config) {
$scope.currentPerson = result;
});
或者您可以使用角度快捷方式发布方法:
$http.post('/someUrl', data, config).then(successCallback, errorCallback);
POST
方法会将cookie发送到后端。 在后端,您可以使用JSON.parse(req.cookies)
来获取Cookie。