JQuery $ .ajax请求无法在IE中运行

时间:2011-12-08 11:07:12

标签: javascript jquery ajax internet-explorer http-headers

我正在使用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请求的方法和变量

2 个答案:

答案 0 :(得分:0)

旧版本的IE不接受请求类型,如PUT,DELETE,它们只接受POST和GET。也许你的方法不被IE接受?

答案 1 :(得分:0)

我不完全确定为什么IE会这样做,但我有一个哈希的URL。当时它显示的是“#!/ querystring”的哈希值,但当我将其更改为“#!querystring”时,它运行正常。 我很有兴趣知道是否有人知道为什么IE不喜欢第一个例子。