有没有办法用初始http请求设置cookie?
意思是,我想调用一个url并同时设置cookie。不知道怎么回事?感谢您
更新:我不是跨域,而是新标签中的子域。
答案 0 :(得分:1)
Cookie会在请求离开时随HTTP请求一起飞行。因此,必须在HTTP请求之前设置cookie,因此浏览器可以打包它们。
如果您只想在请求之前设置Cookie,可以使用$cookies
服务:
angular.module('cookiesExample', ['ngCookies'])
.controller('ExampleController', ['$cookies', function($cookies) {
// Setting a cookie
$cookies.put('myFavorite', 'oatmeal');
// Make your HTTP Request here //
// $http.get('/someUrl').then(...);
}]);
现在,如果您希望透明地设置这些cookie而无需在任何地方分散$cookies
,那么您应该编写HTTP拦截器并在那里设置这些cookie。你可以在这里阅读如何做到这一点:https://docs.angularjs.org/api/ng/service/ $ http(寻找拦截器)。
创建拦截器(本质上是工厂)之后,您可以在.Config
阶段将其连接起来,如下所示:$httpProvider.interceptors.push('myHttpInterceptor');
。然后,即使AngularJS框架发出的调用也会收到此cookie。
如果这不是您想要的,请在此处发表评论,我会尝试更新它。