2011-12-08 50 views
0

不工作我使用一個jQuery做一個$就要求。它在鉻/ 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方法。 請求是一個靜態類,其中有一些方法和變量用於發出Ajax請求

+0

什麼是'Request'全球正在使用? – rxgx

+0

它是我製作的靜態課程。我不是很擅長術語 – Undefined

+0

哪個版本的IE?你是否支持代理? – Lloyd

回答

0

我不完全知道爲什麼IE在做,但我有一個混編網址。當時它顯示「#!/ querystring」的散列,但當我將它改爲「#!querystring」時,它工作正常。 我知道是否有人知道IE爲什麼不喜歡第一個例子。

+0

你明白什麼是散列以及它如何響應URI?它是HTML中特定「a name =」「'的書籤,除非指定完整的URI或URL路徑,否則不會發出服務器請求。 – rxgx

+0

是的,我明白了。你意識到他們可以被JS抓住,而JS又可以提出服務器請求? – Undefined

0

舊版本的IE不接受像PUT,DELETE這樣的請求類型,它們只接受POST和GET。也許你的方法不被IE接受?

+0

林使用Get – Undefined

+1

jQuery將模擬PUT或DELETE不是由給定的瀏覽器支持的請求。問題應該是後端是否設置爲接收超過$ _POST和$ _GET。 – rxgx