2011-12-08 16 views
0

$ .ajaxリクエストを作成するためにjqueryを使用しています。私が知っている限り、chrome/firefoxや他のブラウザではうまく動作しますが、IEで2回目のリクエストが行われたときに初めて動作し、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がそれをやっていたのか分かりませんが、私はハッシュされたURLを持っています。 "#!/ querystring"というハッシュを表示していたときに、 "#!querystring"に変更したときにうまくいきました。 IEが最初の例を好まない理由を誰かが知っているかどうかを知ることは面白いだろう。

+0

ハッシュとそれがURIにどのように応答するかを理解していますか?これはあなたのHTML内の特定の 'a name =" "'へのブックマークであり、URIまたはURLパス全体を指定しない限り、サーバ要求を行いません。 – rxgx

+0

ええ、私は理解しています。あなたはJSで捕まえることができ、それがサーバー要求を行うことができることを認識していますか? – Undefined

0

IEの古いバージョンは、PUT、DELETEなどのリクエストタイプを受け付けません。たぶん、あなたの方法はニューヨークで受け入れられていない?

+0

Getを使用しているIm – Undefined

+1

jQueryは、指定されたブラウザでサポートされていないPUTまたはDELETE要求をエミュレートします。疑問は、バックエンドが$ _POSTと$ _GET以上のものを受け取るように設定されているかどうかです。 – rxgx

関連する問題