ajax携带cookie的两种方式

1.  Ajax携带cookie的两种方式

  场景:

  后台需要前端的ajax请求携带上cookie值,因为cookie上面有用户的userId的加密信息或者是token。

 

  

  解决步骤:

  1、服务器方面,添加@CrossOrigin注解到controller层上。-----》解决服务端允许前端跨域问题。

  2、前端方面:必须要注意的点是:浏览器的同源策略问题----》就是域名必须要一致,否则,ajax是不会携带非同源的cookie的。-----》怎样解决这个同源的问题呢?-----》如果前端同事懂的话,可以用node.js去配置代理---》如果是后台同事懂的话,可以用nginx去配置反向代理------》目的是:让域名保持一致!!!!!

 

  ajax请求

  a.  第一种  

$.ajax({

    url: 'www.baidu.com',

    type: 'post',

    data: '',

    //  默认情况下,标准的跨域请求是不会发送cookie的

    xhrFields: {

      withCredentials: true

    },

    success: (rs) {

    }

  })

 

  b.  第二种 /  因为有时候第一种情况cookie也是携带不过去的,可以通过fiddle 4抓包看  

$.ajax({

    url: 'www.baidu.com',

    type: 'post',

    data: '',

    //  默认情况下,标准的跨域请求是不会发送cookie的

    beforeSend: function (xhr) {

      xhr.withCredentials = true

    },

    success: (rs) {

    }

  })

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章