Vue+NodeJS的跨域請求Session不同


前端:vue+NodeJS

后端:springboot

前端通過vue-resource插件發送ajax請求

問題描述:

請求的時候后台接收到的session每次sessionid都不一樣

如何解決:

在前端請求的位置加上withCredentials: true

this.$http.post(this.global.basePath + this.url, requestParam, {emulateJSON: true,withCredentials: true})
.then(function (res) {
//成功
}, function () {
//請求失敗
})

后台controller加上Spring注解@CrossOrigin來支持跨域
import org.springframework.web.bind.annotation.CrossOrigin;

@CrossOrigin
public class CrossController{

}

XMLHttpRequest.withCredentials  屬性是一個Boolean類型,它指示了是否該使用類似cookies,authorization headers(頭部授權)或者TLS客戶端證書這一類資格證書來創建一個跨站點訪問控制(cross-site Access-Control)請求。在同一個站點下使用withCredentials屬性是無效的。

此外,這個指示也會被用做響應中cookies 被忽視的標示。默認值是false。

如果在發送來自其他域的XMLHttpRequest請求之前,未設置withCredentials 為true,那么就不能為它自己的域設置cookie值。而通過設置withCredentials 為true獲得的第三方cookies,將會依舊享受同源策略,因此不能被通過document.cookie或者從頭部相應請求的腳本等訪問。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM