私はdeferred
APIを理解しようとしており、この素敵なサンプルコードをTwitter検索APIと一緒に使用しています:
var getTweets = function(q) {
return $.ajax({
url: 'http://search.twitter.com/search.json?q=' + encodeURIComponent(q),
dataType: 'jsonp'
})
};
var getTheDay = function(date){
var date = new Date(date);
return date.getDay();
}
var parseTweetData = function(data){
$.each(data.results, function(index, tweet){
console.log(tweet.text
+ ' from ' + tweet.from_user_name
+ ' at ' + getTheDay(Date.parse(tweet.created_at) * 1000));
});
}
var parseError = function(error, xhr) {
alert('failed')
};
$.when(getTweets(' martin')).then(parseTweetData, parseError);
結果を返すことは問題ありません。問題は、twitter が403 エラーを返す状況で発生します。
カスタムエラーハンドラーでそのエラーを処理したいのですが、まったくトリガーされていないようです。私は何を間違っていますか?APIを誤解していますか?適切な ajax エラー ハンドラ リクエストを作成するにはどうすればよいですか?