我正在从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调用,因此它需要随请求一起发送cookie。但是IE11不会在请求中发送任何cookie。
我已经试过了:“跨域访问数据源:在可信站点的ie11设置中启用”。这个解决方案是有效的。
但我不希望对最终用户产生任何影响,假设最终用户已经接受了第三方cookies,那么实现这一目标的最佳方法是什么?
发布于 2020-05-04 13:42:31
如果您想在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标头,指定将缓存印前检查请求的秒数,这将减少请求量:
Access-Control-Max-Age: 3600您可以参考this link,了解如何为特定的服务器实现CORS。
https://stackoverflow.com/questions/61549431
复制相似问题