Ajax不会回退任何数据。
$.ajax({
dataType:'jsonp',
url: url,
async:false,
success: function(data){
getUsername = data.user.id;
},
});
返回数据为null,但需要返回userId
答案 0 :(得分:3)
您的数据已正确返回:
Object {user: Object, stat: "ok"}
stat: "ok"
user: Object
->id: "66956608@N06"
->username: Object
__proto__: Object
这是您处理结果的方法:
function foo() {
return $.ajax(...);
}
foo().done(function(result) {
// code depending on result
}).fail(function() {
// an error occurred
});
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);
}).fail(function(err){
alert('an error has occured :'+err.toString());
});
答案 1 :(得分:1)
你需要这样做:
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);
});
答案 2 :(得分:0)
这是因为AJAX函数被异步调用。这意味着URL被调用,并且在进行处理时,javascript代码继续执行并从您的函数返回。您可以通过在成功处理程序中放置getUsername警报来查看此信息。此时,您可以看到数据实际上正确返回。