Node跨域问题及cookie

2019-03-29  本文已影响0人  微微笑的蜗牛

在使用 Node 开发后端服务时,如果遇到需要跨域请求,则服务端需加上:

//设置跨域访问  
app.all('*', function(req, res, next) {  
    res.header('Access-Control-Allow-Origin', req.get("Origin"));
    res.header('Access-Control-Allow-Headers', 'credentials,Content-Type, Content-Length, Authorization, Accept, X-Requested-With, token');
    res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
    
    //若要返回cookie、携带seesion等信息则将此项设为true。此时Access-Control-Allow-Origin不能设置为*
    res.header("Access-Control-Allow-Credentials","true"); 
   
    next();  
});  
  1. 如果有自定义的 header 字段,则需要在 'Access-Control-Allow-Headers' 中添加。

  2. 如果需要设置 cookie ,则需要设置 Access-Control-Allow-Credentials 为 true ,并且 Access-Control-Allow-Origin 不能设置为 *

  3. 请求时需要带上 credential 相关的参数,这点很重要,否则 session request id 每次都不一样。

上一篇下一篇

猜你喜欢

热点阅读