IE9中的jQuery AJAX请求未发送Cookie标头

问题描述

| 我正在使用jQuery的ajax .get方法从服务器中检索数据。在Chrome上可以完美运行,但是在IE9中,它不会发送Cookie标头,从而破坏了应用程序。知道为什么吗?这是jQuery代码:
$.get(this.server + \'rest/photo/\' + this.profileId + \'/count\',function(data) {
    $(\'#imageCount\').html(data);
});
    

解决方法

我在这里有同样的问题,我无法使用jQuery
.ajax()
函数。我发现的唯一解决方法是:
<meta http-equiv=\"X-UA-Compatible\" content=\"IE=EmulateIE8\" /> 
您可以将此meta标签添加到页面顶部以使其正常工作。但这并不是一个好的解决方案。我认为问题在于IE9中的“ 3”对象是不同的,因此jQuery无法找到相应的对象,因此ajax不会触发。     ,多年以后,我遇到了与OP类似的问题,但遗憾的是,IE9仍在流行。 我尝试使用的每个浏览器(包括IE10 +)都可以将cookie传递到我的后端,但IE9会删除它们。 Cookie的属性似乎并不重要。主页和API位于相同的域上,并且Cookie匹配,方案相同。我对IFRAMES并没有做任何事情,因此P3P的“马铃薯”黑客行为无济于事。 因此,我开始对可能与IE9不同的内容进行一些研究。微软的这篇文章很有启发性,概述了IE8和IE9用来帮助解决CORS安全漏洞的所有工作: 必须使用HTTP(S),并且两个端点必须使用相同的方案 必须使用GET / POST 不允许自定义标题 仅允许文本/纯内容类型 对安全区域设置更敏感 Cookies将从请求中剥离 关于Cookie的最后一项让我开始思考,如果IE9认为我正在进行跨站点请求该怎么办?看起来确实像是被这种精美的方式击落了。我已经检查了一些显而易见的内容,例如方案和域,但是也许我没有检查所有内容。 解决方案?具体来说,我使用reqwest作为我的ajax库。它有一个跨域参数,出于某种原因,我将其设置为
true
。将其(正确)设置为false可以解决问题-我的所有cookie都被服务器提取。所以这是一个愚蠢的错误,但是我学到了一两件事。 希望这对某人有帮助!     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...