我是ajax的新手。我试图找到答案,但没有找到相应的答案。基本上我需要使用ajax来获取一些数据,之后将这些数据放到变量中,以后将用作自定义代码的回调函数的属性。
这个ajax部分只是myObject的一种方法。
所以,最后我需要这种功能:
myObject.getData(url, callback(data) {
//my custom code of what I wanna do after ajax is complete
});
我的代码
/ * 这里有一些属性和其他方法不是这种情况 * /
//This is where Im stuck
var getData = function getFromUrl($url) {
$.ajax({
type: 'get',
url: $url,
dataType: 'html',
success: function(html) {
$obj = html;//Im lost on this step!
},
});
};
P.S. Im trying to find an async way (without using async:false). Hope its possible
答案 0 :(得分:0)
首先我遇到了很多问题。我的第一个问题是No Access-Control-Allow-Origin,大多数网站都不允许您出于安全原因而废弃获取数据。幸运的是,某人已经成为代理人:http://cors.io/。第二个问题是你不能在https上嵌入http,所以我不能用jsfiddle来告诉你这个工作,它适用于我当地的环境。在获得原始html之后你必须解析它,你可以使用完整的正则表达式,或者你可以使用jquery为自己提供支持,就像我在这个例子中所做的那样。我们正在做的是检查stackoverflow.com并使用.find(“.bounty-indicator-tab”)获取特色问题的数量.first()。html();但是,一旦你拥有完整的HTML,你就可以得到你需要的任何数据。
var getData = function getFromUrl(url) {
$.ajax({
url: 'http://cors.io/?' + url,
crossDomain: true,
dataType: 'html',
success: function (html) {
var match = $(html).find(".bounty-indicator-tab").first().html();
console.log(match);
return match;
},
error: function(e) {
console.log('Error: '+e);
}
});
};
url = 'http://stackoverflow.com/';
data = getData(url);
//You cant use data yet because its working async