Ajax はデータを返しません。
$.ajax({
dataType:'jsonp',
url: url,
async:false,
success: function(data){
getUsername = data.user.id;
},
});
返すデータは null ですが、userId を返す必要があります
Ajax はデータを返しません。
$.ajax({
dataType:'jsonp',
url: url,
async:false,
success: function(data){
getUsername = data.user.id;
},
});
返すデータは null ですが、userId を返す必要があります
これを行う必要があります:
function getUserId() {
var url = "http://api.flickr.com/services/rest/?jsoncallback=?&api_key=fc6c52ed4f458bd9ee506912a860e466&method=flickr.urls.lookupUser&format=json&nojsoncallback=1&url=http://www.flickr.com/photos/flickr";
var getUsername = null;
return $.ajax({
dataType: 'jsonp',
url: url,
async: false
});
}
getUserId().done(function (result) {
// Call the alert here..
alert(result.user.id);
});
これは、AJAX 関数が非同期で呼び出されるためです。これは、URL が呼び出され、処理が行われている間、JavaScript コードの実行が継続され、関数から返されることを意味します。これは、成功ハンドラー内に getUsername のアラートを配置することで確認できます。その時点で、データが実際に正しく返されていることがわかります。