AngularJS忽略set-cookie标头

时间:2017-07-21 14:52:32

标签: javascript angularjs http cookies cors

我收到一个带有set-cookie标头的http响应,我可以在Chrome Devloper工具中看到。我甚至可以看到网络标题下列出的cookie,但是没有在浏览器中设置cookie。浏览器将设置相同的原始cookie,但不会设置来自CORS请求的cookie。

我试过暴露标题,发现它是禁止的

我尝试将withCredentials设置为true并将Access-Control-Allow-Credentials标头设置为true,我没有使用通配符作为Access-Control-Allow-Origin标头,并且我将Cookie路径设置为{{ 1}}

我尝试使用jQuery发出此POST请求,但我仍然无法控制日志在Chrome开发者工具中显示的设置Cookie标头:

如何让浏览器设置此cookie?

以下是我的项目的一些相关部分(Node / Express后端w / AngularJS前端):

'/'

在前端(端口8000) -

var cors = require('cors');
app.use(cors({credentials: true, origin: 'http://localhost:8000'})
app.use(session({
  secret: 'A_SECRET',
  resave: false,
  saveUninitialized: false,
  store: sessionStore,
  cookie: {
    secure: false,
    path: '/',
    domain: 'http://localhost:8000',
    maxAge: 1000 * 60 * 24
  }
}))
app.use((req,res,next) => {
  res.header('Access-Control-Allow-Credentials', true);
  res.header('Access-Control-Allow-Origin', 'http://localhost:8000');
  next();
})

登录组件:

angular.module('signIn', [
'core.company',
'signUp'
])
  .config(function($httpProvider){
    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
    $httpProvider.defaults.withCredentials = true;
});

0 个答案:

没有答案