2012-04-18 4 views
4

注:this question re: a pre-jQuery 1.5 JSONP error issue that has now been resolvedなどのその他の回答を確認しました。私はこの問題を抱えていないと信じているJQuery 1.7を使用しています。JQuery 1.7のJSONPエラー

JQuery 1.5 proper error functions are possible with JSONP(「The jqXHR Object」を参照)。しかし、エラー機能は発射していないようです。クローム開発ツールを見ると

$.getJSON(url, function(response) { 
    console.log(response) 
}).error(function() { console.log('Error occurred.') }) 

、JSONPリクエストは、次のエラーを生成します。

GET https://twitter.com/status/user_timeline/somepretendusername.json?count=2&callback=jQuery171005595548846758902_1334772179012&_=1334772179132 400 (Bad Request) 

.ERROR()コールバックは、単に実行していないようですが。 JSONPで適切なエラー処理を行うには何が必要ですか?

+0

'.fail()'コールバックを使用しても同じ結果が得られますか? –

+0

@KevinBありがとうございます。 Alas .fail()はうまくいきません。 – mikemaccana

答えて

2

エラー関数は、要求にエラーがある場合にのみトリガします。要求は行われていますが、ユーザー名が存在しない場合はTwitterが400を返します。私は偽のユーザー名を使って試してみましたが、同じレスポンスを得ましたが、私は自分のユーザー名を使用していました。

[編集] JSONPでエラーを処理する方法を尋ねているだけです。何らかの理由で、jQueryはこれに対して適切なエラー処理をしていないようです。私は、JSONPの実際のエラー処理を約束するプラグインを見つけました。それをチェックしてくださいhere

[編集2]それをチェックしてください、それは動作します!

$(document).ready(function() { 
    var url = 'https://twitter.com/status/user_timeline/thisisnotarealtwitterhandle.json?count=2&callback=?'; 
    var jqxhr = $.jsonp({ 
     url: url, 
     success: function(response) { 
      console.log(response) 
     } 
    }).fail(function() { console.log('error'); }); 
}); 
+0

ありがとうございますが、実際のユーザー名を使用しています。私の質問は、400エラーを回避する方法ではなく、適切なエラー処理を行う方法です。 – mikemaccana

+0

@nailer本当の質問は、ステータスコード400が本当にjQuery内でエラーを引き起こすかどうかということです。 '.always'コールバックを使用してリクエストのステータスコードを取得し、ステータスコードが400の場合はこれを行い、それ以外の場合はそれを行います。 –

+0

ええ、私はあなたの質問をよく理解していると思います。 $ .getJSONが成功しないと、エラーがスローされるという事実から生まれたようです。 – CWSpear

関連する問題