2011-12-19 3 views
0

で動作します今日の1.7.1は、これを返します:クロスドメインjQuery.ajax要求からのエラー、しかし、私はこのコードを持っている古いバージョン

Object { readyState=0, status=0, statusText="error"} 

私はそれを動作させることができませんでした。私は間違って何をしていますか?

+0

私はそれが1.3.2にどのようにでは動作しなかった...これを見る方法があると思いますか?ブラウザは、クロスドメインのajaxリクエストを拒否します。 –

+0

私はクロスドメインリクエストにjsonpを使う必要があると思います。 – JesseBuesking

+0

ここでは、クロスドメインのajaxリクエストが1.3.2で動作しなかったことを示すフィドルがあります。http://jsfiddle.net/Tentonaxe/bpb5B/ –

答えて

0

jQuery AJAX関数に、クロスドメインコールを行っていることを伝えているコードはありません。 JSONPを使ってJSONブロックで

$.ajax({ 
    url  : "http://example.com/auth", 
    dataType : 'jsonp', 
    type  : "POST", 
    data  : "username=example&password=mypasswd", 
    success : function(returned) { 
     // do stuff 
    }, 
    error : function(returned) { 
     console.log(returned); 
    } 
}); 

ロード:あなたの$.ajax()呼び出しでオプションの1つとしてdataType : 'jsonp'を追加してみてください。余分な "?callback =?"を追加します。 URLの末尾の にコールバックを指定します。 オプションがtrueに設定されていない限り、クエリ文字列パラメータ "_ = [TIMESTAMP]"を にURLを追加することでキャッシュを無効にします。

出典:http://api.jquery.com/jquery.ajax/

+0

'jsonp'は' POST 'をタイプすることはできません。サーバ側のコードが 'POST'の代わりに' GET'パラメータを受け入れるように書かれていない限り、 '1.3.2'でどのように動作していたかは分かりません。 jQuery 1.3.2では、jsonpをリクエストしていると設定しなかった場合、失敗します(私が書いた小さなテストケースによると)。 –

0

これは、クロスオリジンポリシーです。前にオプションコールを受け入れるようにサーバーを設定する必要があります。

詳細はで見つけることができます: https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

+0

クロスドメインリクエストを実装する方法の詳細や、コメントに既に記載されていることについて言及してください –

関連する問題