ajax在ie中,当IE调试器打开时,jQuery ajax仅在IE中可用

我遇到了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缓存相关的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值