2011-06-21 13 views
3

$.ajaxのどのパラメータをAJAXリクエストを通常のリクエストとしてマスクするように設定する必要がありますか?私はそれが正しいヘッダーと関係があると思う。AJAXリクエストを通常の通常のリクエストのように見せる方法

私は問題の大部分は、ローカルの.htmlファイルで作業する場合、jQueryのnullOriginのヘッダー値を設定していることだと思います。

Origin-headerを取り出す方法はありますか?この瞬間私は、ウェブブラウザとするとき、私はjQueryのAJAX要求を行うを通してそれにサーフィン場合、私は同じURLから異なる結果を得ている時

+0

あなたは異なる結果を取得した場合、サービスはそれを望んでいるので、それはです。それを回避しようとしないでください。 –

答えて

4

これはことはできません。

6

普通リクエスト(通常のリクエストの意味)と比較して、jQueryで送信されるAJAXリクエストで異なるのは、X-Requested-With: XMLHttpRequest HTTPヘッダーだけです。このヘッダは、このように除去することができる:

$.ajax({ 
    url: '/foo', 
    type: 'POST', 
    data: { bar: 'baz' }, 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader(
      'X-Requested-With', 
      { 
       toString: function() { return ''; } 
      } 
     ); 
    }, 
    success: function(result) { 
     alert(result); 
    } 
}); 

またはグローバル、サイト上のすべてのAJAX要求について:すべての最新ブラウザによって強制によりSame Origin Policy

$.ajaxSetup({ 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader(
      'X-Requested-With', 
      { 
       toString: function() { return ''; } 
      } 
     ); 
    } 
}); 
+0

動作していないようです。私はそれが何か違いがあれば、GETをやっています。 –

+0

@Seb Nilsson、GETでもPOSTでも何の違いもありません。どちらの場合でも、次のコードは、このライブデモで示されているように 'X-Requested-With'を削除します:http://jsfiddle.net/AUGQJ/1/(Fireboxの要求ヘッダーを調べれば、 'X-Requested-With')を返します。 –

+0

私は前にそれを見つけられませんでした。しかし、私はまだOriginがnullに設定されていると思っています。 –

0
  1. jQueryは元ヘッダーを設定しません。ブラウザだけがそれを行うことができます。そして、jQuery(またはjavascript)はこのヘッダーに対して何の力もありません。 XMLHttpRequestがあなたの手でそれを削除するか、要求を行うことができます:ここ

  2. Null Origin Header

  3. jQueryと定期的な要求の唯一の違いは、実際にX-要求-であるがnullに設定原産地ヘッダーの例についてのリンクです新しいXMLHttpRequest、またはfetch()を使用します。

幸運