私のアプリでは、登録時に gravatar からユーザーのプロファイルを取得しようとしています。そのため、ユーザーは姓名を入力する必要がありません。私は以下のコードを使用しています -
$.ajax({
url: "http://www.gravatar.com/" + get_gravatar_url(email) + ".json",
async: false,
type: 'GET',
dataType: 'jsonp',
crossDomain: true,
success: function(data){
console.log('data = ' + gravatar_profile);
data_received = 1;
},
error: function() {
console.log('oh noes!');
},
});
ユーザーの電子メールが見つからない場合、コンソールに次のエラーが表示されます -
GET http://en.gravatar.com/79ac7efbf9deb9b7f7965d9aa564078b.json?callback=jQuery191009235964552499354_1373008918711 404 (Not Found)
ただし、エラー関数は呼び出されません。(誰かが理由を説明できますか?)ただし、ユーザーの電子メールが見つかった場合、成功関数が呼び出されます。
次の機能を使用して、jquery-jsonpも試しました-
$.jsonp({
async: false,
url: "http://www.gravatar.com/" + get_gravatar_url(email) + ".json",
dataType: "jsonp",
crossDomain: true,
timeout: 5000,
success: function(data){
alert(data);
},
error: function(XHR, textStatus, errorThrown){
alert("ERREUR: " + textStatus);
//alert("ERREUR: " + errorThrown);
},
});
コンソールに 404 エラーが表示されたままですが、少なくともエラーが検出され、アラートが表示されます。しかし、gravatar が json 形式でデータを送信すると、新しいエラーが発生します -
Uncaught SyntaxError: Unexpected token :
誰でもこれを機能させる方法を教えてください。