我正在使用jquery来发出$ .ajax请求。据我所知,它在chrome / firefox和其他浏览器中运行良好,但在IE中它第一次运行时,当在IE中发出第二个请求时,ajax失败并出现406不可接受的错误。
我尝试过设置不同的接受标头而没有运气。有什么想法吗?
$.ajax({
type: Request.method,
url: Request.request_url,
cache: false,
data: Request.getVarsString(),
dataType: "text",
beforeSend: function(req){
req.setRequestHeader("Accept", "text/html,application/xhtml+xml/application/xml;q=0.9,*/*;q=0.8");
req.setRequestHeader("Accept-Language", "en-gb,en;q=0.5");
req.setRequestHeader("Accept-Encoding", "gzip, deflate");
Request.loadBeforeSend(id);
},
success: function(replyData){
Request.requestComplete(id, replyData);
},
error: function(jqXHR, textStatus){
alert(textStatus+" "+jqXHR.status);
//Request.requestComplete(id, replyData);
}
});
我正在使用get方法。 Request是一个静态类,包含一些用于发出Ajax请求的方法和变量
答案 0 :(得分:0)
旧版本的IE不接受请求类型,如PUT,DELETE,它们只接受POST和GET。也许你的方法不被IE接受?
答案 1 :(得分:0)
我不完全确定为什么IE会这样做,但我有一个哈希的URL。当时它显示的是“#!/ querystring”的哈希值,但当我将其更改为“#!querystring”时,它运行正常。 我很有兴趣知道是否有人知道为什么IE不喜欢第一个例子。