Ajax跨域post请求后端无法获取登录态原因及解决办法
生活随笔
收集整理的這篇文章主要介紹了
Ajax跨域post请求后端无法获取登录态原因及解决办法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
遇到個小坑,印象中不是第一次遇到了,記錄一下:前后端分離時前端、后端不在同一個子域,跨域post請求后端無法獲取登錄態。
原因
后端通過cookie驗證用戶是否登錄,跨域post不會自動攜帶上cookie,因此驗證失敗。
解決辦法
手動設置請求帶上cookie即可,支持版本:jQuery 1.5.1+:
$.ajax({url:'//xxx.37games.com/xxx',type:'post',dataType:'JSON',xhrFields: {withCredentials: true}, // 設置后,發送請求會帶上當前主域的cookiedata:{...... })網上很多文章說要加上設置項crossDomain: true,其實是多余的。可以參考下官網文檔中對于crossDomain的介紹,如下圖:
跨域時它的值默認就是true,沒必要設置。
總結
以上是生活随笔為你收集整理的Ajax跨域post请求后端无法获取登录态原因及解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杨玉环召唤师带什么技能
- 下一篇: jsonp请求拦截