2011-08-09 25 views
1

は一例です:これはInternet Explorerで動作しないのはなぜですか?ここ

http://develop.davzy.com/ajaxtest/#!/contents

これは、Internet Explorer用を除くすべてのブラウザで動作します。ここでは、コードがあります:contents.htmlの

<!doctype html> 
<html> 
    <head> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script> 
     <script> 
      $(document).ready(function(){ 
        $('div').load('contents.html'); 
      }); 
     </script> 
    </head> 
    <body> 
     <div>This message will change if the call is made correctly.</div> 
    </body> 
</html> 

内容は をしているあなたはtest.htmlというの上にまだしている場合、このAJAX呼び出しが働いていました。

明らかに私はハッシュタグナビゲーションの使用を計画していますが、IEで動作するURLから/#!/ contentsを削除すると奇妙です。しかし、コードとは何の関係もなくても、それを残しておけば、まだ動作しません。ヘッダーを見ると406エラーが出ます。ヘルプ:(

+0

http://develop.davzy.com/contents.html does not exist?多分あなたはfirefoxであなたのhtmlをcahedしていますか? – papachan

+0

決してそのページを取得しようとしません。それはhttp://develop.davzy.com/ajaxtest/contents.htmlを取得しようとし、406エラーではありません404 –

+0

それは私のために正常に動作します。 IE 9で。 – papachan

答えて

0

"リファラー"ヘッダーを作成するときにIE9がURLの "#!/ contents"部分を保持するように見える問題jQuery AJAXがブラウザのXMLHTTPRequestをラップするjqXHRオブジェクトオブジェクトはsetRequestHeaderメソッドを公開します。これにより、Refererヘッダーを変更して406エラーが発生しないようにすることができます。正確なRefererヘッダーを気にしない場合は、スクリプトに次のコードを追加してみてください。

$('div').ajaxSend(function(evt,jqXHR) { 
    jqXHR.setRequestHeader(jqXHR.getResponseHeader("Referer").replace(/#/g,'')); 
}); 

これは、Refererヘッダーからハッシュマークを除去するdivに対して実行されるすべてのAJAX操作に対してajaxSendコールバックを作成します...これはテストする時間がありませんでしたが、理論上はうまくいくはずです

関連する問題