我收到一个带有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标头:
以下是我的项目的一些相关部分(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;
});