質問

私はjQueryの世界に入ったばかりで、JavaScriptにとってもかなり新しいです。以下のような小さなJavaScriptスニペットを持っています: -

<script type="text/javascript">
 $(function(){
    $('a').click(function(event){
        event.preventDefault();
        $.get('/_add_navigation_',function(response){
        $('#themaincontents').html(response);
        })
   })
</script>

HTMLは以下のようになります: -

 <a href="?toaddnavigation">CLICK Me</a>
 <div id="themaincontents"></div>

サーバー側では、XHRヘッダーチェックを行います。

 if request.is_xhr: send response else:redirect somewhere

現在、このコードはChromeとOperaで正常に動作しますが、Firefoxでは少し奇妙に動作しています。サーバーは、リダイレクトを行うのではなく、reponseを返信しません。つまり、XHRヘッダーがないことを意味します。他の2つのブラウザでは正常に動作している間にこれが起こるのはなぜですか。 (私はFirefox 3.6.12を使用しています)更新 - Firefoxのリクエストヘッダーを見ていましたが、X-Requested-with:xmlhttprequestヘッダーはありませんが、Chromeに存在します)

役に立ちましたか?

解決

すべてのブラウザが同じヘッダーを送信するわけではなく、ブラウザ全体で一貫性を持つように頼ることはできません。最も簡単な方法は、ブラウザに何かを送信するのではなく、手動で何かを自分で送信することです。

$.get('url', {
    xhr: 'yes' // add this extra parameter here
}, function(){

});

次に、ブラウザによって送信される場合と送信されない場合があるヘッダーの代わりに、サーバー上の変数を取得することを確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top