美文网首页
Node跨域问题及cookie

Node跨域问题及cookie

作者: 微微笑的蜗牛 | 来源:发表于2019-03-29 21:49 被阅读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 每次都不一样。

  • 若使用 fetch ,设置 credentials: 'include'

     const init = {
         headers: {
             'Accept': 'application/json',
              'Content-Type': 'application/json;charset=UTF-8',
         },
         method: 'GET',
         credentials: 'include'
    }
    
  • 若使用 request ,设置 request.defaults({jar: true})

    // qs,表示query参数
    var options = {
        'url': url,
        'qs': {
             'code': code,
         }
    }
        
     // 设置可以使用cookie
    var defaultReq = request.defaults({jar: true})
    
    defaultReq(options, function (error, response, body) {
    }
    
  • 若使用 axios , 则设置 withCredentials:true

相关文章

  • Node跨域问题及cookie

    在使用 Node 开发后端服务时,如果遇到需要跨域请求,则服务端需加上: 如果有自定义的 header 字段,则需...

  • cookie 跨域访问的解决方案

    资料: 理解Cookie和Session机制 Ajax跨域请求中的Cookie问题(默认不带cookie等凭证) ...

  • node跨域设置cookie

    在做vue+express 做项目。 想做一个免登陆功能,选择session方案。 服务器设置session 后,...

  • 【综-网】Http浅析【3】——fetch带cookie的跨域问

    在Http浅析【2】——ajax跨域问题中对跨域产生的原因和解决方法做了说明。这一章节,把带cookie的跨域问题...

  • 跨域

    跨域资源共享 CORS 详解什么是跨域及怎么解决跨域问题?

  • cookie跨域问题

    场景: springboot+shiro+vue shiro框架使用cookie做验证令牌 vue项目请求路径: ...

  • 带cookie的跨域1

    带cookie的跨域1 1、Access-Control-Allow-Origin:*解决不了带Cookie的跨域...

  • 关于请求的理解

    在node环境,不存在跨域问题, 在浏览器环境才存在跨域的问题. 在node环境,用不了axios , 在浏览器环...

  • fetch、axios的跨域配置

    fetch默认不携带cookie etch发送请求默认是不发送cookie的,不管是同域还是跨域;那么问题就来了,...

  • SpringBoot+Vue数据交互

    后端框架Spring Boot,前端框架vue 1. 跨域+携带cookie 跨域-携带cookie 2. 拦截器...

网友评论

      本文标题:Node跨域问题及cookie

      本文链接:https://www.haomeiwen.com/subject/zixdbqtx.html