Internet Explorer 9 没有通过我的 AJAX 请求发送会话 cookie。
当我通过 AJAX 向我的 API 发出身份验证请求时,它会返回一个设置会话 cookie 的响应。通过 AJAX 对 API 的后续调用不会将 cookie 发送回服务器。
API 位于同一主机上。同样,常规的非 AJAX 页面请求也不会显示会话 cookie。我关闭了 Internet 选项中的所有隐私和安全设置。Chrome 会正确发送 cookie。
如何让 IE 返回 cookie?谢谢!
Internet Explorer 9 没有通过我的 AJAX 请求发送会话 cookie。
当我通过 AJAX 向我的 API 发出身份验证请求时,它会返回一个设置会话 cookie 的响应。通过 AJAX 对 API 的后续调用不会将 cookie 发送回服务器。
API 位于同一主机上。同样,常规的非 AJAX 页面请求也不会显示会话 cookie。我关闭了 Internet 选项中的所有隐私和安全设置。Chrome 会正确发送 cookie。
如何让 IE 返回 cookie?谢谢!
我尝试访问的 URL 使用了下划线字符 ('_')。这是一个无效的 URL,因此 Internet Explorer 不能正确接受 cookie。解决这个问题解决了我的问题实例。
只需将 Math.random() 放在 url 中,例如,
$.ajax({
type: "GET",
url: "getRequestData.do?parameter=GetModelService&t="+Math.random(),
data: "sub=ADD",
cache: false,
................
...............
尽量避免使用 localhost 或 127.0.0.1 作为 URL 的一部分,看看它是否有任何区别。
我在获取请求时遇到了 IE9 的这个问题。我从 $.getJSON(使用带有查询字符串参数的 url)转换为 $.ajax(使用帖子)。我的理论是,类似于 MS 的 MVC 服务器库,IE 不喜欢返回 JSON 的获取请求。(你必须在 MVC 中明确允许这样做,否则它会给你一个错误,表明返回 JSON 的获取请求有一些安全风险错误) 无论如何,由于这是我的谷歌热门之一,我想我会发布对我有用的内容。