我遇到了IE(11)的奇怪问题。我有简单的jQuery代码:
$("#my-radio").click(function () {
$.ajax({
url: "/my-url",
}).error(function(jqXHR, textStatus, errorThrown) {
$("#error-summary").text(errorThrown);
});
});
事实是,这段代码在IE以外的所有浏览器中都可以正常运行(在我的情况下,除了IE 11,我尚未在较早版本中进行测试)
但是,当我打开内置于javascript调试器中的IE来查看问题所在时-一切都开始起作用了很好
。IE对控制器动作进行ajax调用,控制器中的断点被命中。动作不返回任何内容(它的类型为void
),仅计算一些内容。我已经尝试过此线程中提供的插件解决方案,但没有用。
更新:
为了演示这个问题,我在这里发布了简单的MVC应用程序。当您单击图像时,浏览器会对此操作发出ajax请求:
public string Hello()
{
string ip = Request.ServerVariables["REMOTE_ADDR"];
string agent = Request.UserAgent;
var request = new Request
{
IP = ip,
Time = DateTime.UtcNow,
UserAgent = agent
};
_requestsRepository.Add(request);
int byIp = _requestsRepository.GetTotalRequestsCountByUser(ip);
int total = _requestsRepository.TotalRequests;
string message = string.Format("Hello, {0}. This is your {1}th request and {2}th request in total.", ip, byIp, total);
return message;
}
与此jQuery代码:
$(document).ready(function () {
$("#click-me").click(function () {
$.ajax({
url: "/services/hello",
})
.success(function (data) {
alert(data);
})
.error(function (jqXHR, textStatus, errorThrown) {
$("#error-summary").text(errorThrown);
});
});
});
如您所见-操作返回简单的字符串,该字符串将在成功时发出警报。您可以在IE中尝试此页面。您会注意到请求的数量并没有增加,因为 实际上没有发送任何请求,
但是仍然success
调用了事件处理程序并警告了消息(这可能是一些成功的请求之后的一些旧的缓存消息,我不确定)
。在任何其他浏览器中,请求的数量都会增加,因为每次您单击图像时都会发送请求。如果您打开IE调试器-请求也会被发送。我建议这是某种与IE缓存相关的问题。
听起来您可能正在获取缓存的响应。开发人员工具可能启用了“ 从服务器始终刷新” 选项,从而使您仅在打开工具本身时获得新的响应。
尝试cache
在jQuery AJAX
options
对象中添加选项,并将其值设置为false
。
问题内容: 这是我的CSS块: 我只希望IE 7、8和9能够“看到” 最简单的方法是什么? 问题答案: 更新2017 根据环境的不同,在IE10 +中已[正式弃用并删除.aspx)了条件注释。 原版的 最简单的方法可能是在HTML中使用Internet Explorer条件注释 您可以使用许多技巧(例如下划线hack),这些技巧将仅允许您将样式表中的IE作为目标,但是如果要在所有平台上将IE的所有
问题内容: 我试图只是运行包含在Internet Explorer 上的量角器中的示例测试,并且不会太远:( 我尝试过将浏览器名称更改为“ internet Explorer”和 “ version”:11,并且我已注释掉directConnect(因为它对此有所抱怨 ) 我得到的错误是… WebDriverError:必须通过 webdriver.ie.driver系统属性设置驱动程序可执行文件
问题内容: 我们如何使用IE 8调试JavaScript? 在更新到IE 8后,无法使用Visual Studio进行JavaScript调试。 问题答案: 我今天发现,我们现在可以使用IE 8中集成的开发人员工具栏插件来调试Javascript。 单击选项卡右侧工具栏上的 ▼工具 。 选择 开发人员工具 。开发人员工具对话框应打开。 单击对话框中的 脚本 选项卡。 单击 开始调试 按钮。 您可以
本文向大家介绍概述javascript在Google IE中的调试技巧,包括了概述javascript在Google IE中的调试技巧的使用技巧和注意事项,需要的朋友参考一下 今天,发现了一个之前从未注意的角落,相信能够大大提高自己写JS的速度。能够迅速发现错误。 例如,今天的加班中调试一个js错误发现的一个例子。 1、Google浏览器报的错 以上是google浏览器报的错误,只报一
问题内容: 其实这句话是什么意思? 一些示例用于分隔IE的版本,而某些示例则用于; 哪个是对的? 该命令具有一定的重要性,我希望知道这一点。 编辑 :我正在使用 问题答案: 如果您支持IE(对于Internet Explorer 8及更高版本),请执行以下操作: 强制浏览器呈现为该特定版本的标准。IE7及更低版本不支持此功能。 如果用分号分隔,它将设置不同版本的兼容性级别。例如: 将IE7和IE8
问题内容: IE9错误-JavaScript仅在打开开发人员工具一次后才能工作。 我们的网站为用户提供免费的pdf下载,并且具有简单的“输入密码下载”功能。但是,它根本无法在Internet Explorer中使用。 下载通行证为“ makeuseof”。在任何其他浏览器中,它都可以正常工作。在IE中,两个按钮都不起作用。 我发现的最奇怪的事情是,如果使用F12打开和关闭开发人员工具栏,则所有这些