Ajax不會返回任何數據。jquery ajax不返回數據
$.ajax({
dataType:'jsonp',
url: url,
async:false,
success: function(data){
getUsername = data.user.id;
},
});
返回數據爲空,但返回的userId需要
Ajax不會返回任何數據。jquery ajax不返回數據
$.ajax({
dataType:'jsonp',
url: url,
async:false,
success: function(data){
getUsername = data.user.id;
},
});
返回數據爲空,但返回的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);
});
你的數據被正確返回:
Object {user: Object, stat: "ok"}
stat: "ok"
user: Object
->id: "[email protected]"
->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());
});
這是因爲AJAX功能asyncronously調用。這意味着該URL被調用,並且在進行處理時,JavaScript代碼將繼續執行並從您的函數返回。您可以通過在成功處理程序中爲getUsername提供警報來查看。在這一點上,你可以看到數據實際上被正確地返回。
添加「異步:false」是什麼使這個答案的工作。這使得Javascript等待AJAX函數完成,然後再執行該函數。 – nikeaa 2013-04-29 19:08:56
沒有同步jsonp。 – Musa 2013-04-29 19:12:09