0
我试图编写一个简单的javascript函数来使用ajax和yql检索网页内容。这里的功能:Ajax同步调用返回undefined
function retrieveDataGet(url){
var encodedUrl = encodeURI(url);
var address = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22"+encodedUrl+"%2Fcategory%2Fnews%2F%22&diagnostics=true";
console.log("Call : "+address+"\n");
$.ajax({
url: address,
method: 'GET',
async: false
}).done(function(data) {
console.log(data);//Here I can see the webpage data
return data;
}).error(function(err){
return "Error";
}).fail(function(){
return "Fail";
});
}
现在,当我打电话的功能,我可以看到由指令“的console.log(数据)”印在控制台上的数据,但是当我尝试此代码:
var data = retrieveDataGet("http://www.wikipedia.org/");
console.log(data);//here data is undefined
我得到“未定义”。
我在哪里错了?
谢谢,解决了。为什么我必须这样做,我不能从我的函数返回值?这是一个JavaScript语言相关的问题? – user3098549 2014-09-11 12:08:45
问题是你不能从ajax函数值返回 – 2014-09-11 12:09:50