[英]IE 11 not sending cookies with CORS get request
我正在從 localhost:8090 進行 ajax GET 調用,具體如下:
$.ajax({
url: 'https://dev-855592.okta.com/api/v1/sessions/me',
method: 'GET',
dataType: 'json',
xhrFields: {
withCredentials: true
},
crossDomain: true,
success : function(data){
console.log(data);
},
error : function(data){
console.log('Session not found');
},
});
由於這是一個 Okta 調用,它需要 cookies 與請求一起發送。 但是 IE 11 沒有在請求中發送任何 cookies 。
我已經嘗試過一些事情:“跨域訪問數據源:已啟用”在受信任站點的 ie11 設置中。 該解決方案有效。
但我不希望對最終用戶產生任何影響,假設最終用戶已經接受了第三方 cookies,那么實現這一目標的最佳方法應該是什么?
如果要在 IE 11 中啟用 CORS 請求,您的服務器必須將以下標頭附加到所有響應:
Access-Control-Allow-Origin: http://example.com
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: ACL, CANCELUPLOAD, CHECKIN, CHECKOUT, COPY, DELETE, GET, HEAD, LOCK, MKCALENDAR, MKCOL, MOVE, OPTIONS, POST, PROPFIND, PROPPATCH, PUT, REPORT, SEARCH, UNCHECKOUT, UNLOCK, UPDATE, VERSION-CONTROL
Access-Control-Allow-Headers: Overwrite, Destination, Content-Type, Depth, User-Agent, Translate, Range, Content-Range, Timeout, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control, Location, Lock-Token, If
Access-Control-Expose-Headers: DAV, content-length, Allow
或者,您還可以附加 Access-Control-Max-Age header 指定預檢請求將被緩存的秒數,這將減少請求量:
Access-Control-Max-Age: 3600
您可以參考此鏈接,了解為特定服務器實現 CORS。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.