2011-07-25 17 views
2

私はいくつかのURLにajaxリクエストを作成しています。私はステータスとしてエラーが発生しているたびに。ajaxリクエストでURLをリクエストする際の問題

$.ajax({ 
    url: "http://api.jquery.com/jQuery.ajax/", 
    type: 'GET', 
    complete: function(jqXHR,textStatus) { 

         alert(textStatus); 

     } 
    }) 

textStatusに「error」が表示されるたびに表示されます。私は何が間違っている。あなたは、ブラウザのSame Origin Policy.

は、あなたのリモートURLをJSONP requestsを可能と仮定すると、あなたがしていると仮定することによって禁止されているクロスドメインAJAX呼び出しを作るしようとしている

EDIT: 

ckeckそれhttp://jsfiddle.net/bhXbh/54/

+0

これは、別のドメインのページをリクエストしているためです。 – Ibu

答えて

2

JQuery> 1.5を使用すると、$.ajax()パラメータにcrossDomain:trueを簡単に追加できます。 (:http://api.jquery.com/jQuery.ajax/参照)

xhrFieldsは(1.5.1を追加しました)地図

ネイティブXHRオブジェクトに設定するフィールド名-fieldValueのペアのマップ

+0

AlienWebguy:http://jsfiddle.net/bhXbh/57/ – Romi

+0

'http:// api.jquery.com/jQuery.ajax /'を取得しようとしましたが、これはJSONではありません。 JSONPは、JSONレスポンスをコールバック関数でラップすることによって動作します。あなたがURLを取得するとき、あなたは外部関数を含んでいるとブラウザが考えるとコールバックパラメータを認めます。ヤフーはこの技術を数年前に発見した。 – AlienWebguy

+0

はこのURLの作業URL:solrURL + "/ solr/db/select /?qt = dismax&wt = json && start =" + start + "&rows =" + end + "&q =" + query + "&json.wrf =?" – Romi

0

は、次のを見てすることができます。たとえば、必要に応じてクロスドメインリクエストに対してwithCredentialsをtrueに設定することができます。あなたがクロスドメインリクエストを(例えばJSONPなど)を強制したい場合は

を要求したクロスドメインのため、同じドメインのリクエストのための偽真:

$.ajax({ 
    url: 'a_cross_domain_url', 
    xhrFields: { 
     withCredentials: true 
    } 
}); 

クロスドメインは

デフォルト(1.5を追加しました)同じドメインでcrossDomainの値をtrueに設定します。たとえば、別のドメインへのサーバー側のリダイレクトを許可する

関連する問題