IONIC請求加上cookie及跨域問題的解決
ionic2 調用後臺接口時, 需要解決一個問題, 請求頭沒有cookie
關鍵: XMLHttpRequest.withCredentials這個屬性
XMLHttpRequest.withCredentials 屬性是一個Boolean類型,它指示了是否該使用類似cookies,authorization headers(頭部授權)或者TLS客戶端證書這一類資格證書來創建一個跨站點訪問控制(cross-site Access-Control)請求。在同一個站點下使用withCredentials屬性是無效的。
此外,這個指示也會被用做響應中cookies 被忽視的標示。默認值是false。
如果在發送來自其他域的XMLHttpRequest請求之前,未設置withCredentials 爲true,那麼就不能爲它自己的域設置cookie值。而通過設置withCredentials 爲true獲得的第三方cookies,將會依舊享受同源策略,因此不能被通過document.cookie或者從頭部相應請求的腳本等訪問。
所以設置了withCredentials 爲true 之後, 請求都會默認帶上cookie, 不需要其他額外的操作, 唯一要注意的是跨域的問題
解決跨域問題有很多方法
1. 使用nginx
首先下載nginx進行解壓縮,修改conf文件夾裏的nginx.conf文件,
在瀏覽器訪問的時候可以進入開發模式, 查看請求是否有帶cookie
- 使用google的擴展程序cors toggle
使用前重啓下瀏覽器
如果還不行,需要在google瀏覽器屬性裏進行修改
右鍵google瀏覽器屬性,在目標末尾加上 –args –disable-web-security –user-data-dir
需要空格隔開