我想提出一些跨域数据请求。首先,我尝试使用YQL,它起作用了:
<script type="text/javascript">
$(document).ready(function(){
var myURL = 'http://example.com';
var xpathVariable = '...';
var yql = "http://query.yahooapis.com/v1/public/yql?q=" + encodeURIComponent("SELECT * FROM html WHERE url='" + myURL + "'") + "%20AND%20xpath%3D'%2F%2Fdiv%5B%40id%3D%22" + xpathVariable + "%22%5D" + "&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=?";
jQuery.getJSON(yql, function(data){
var divToUpdate = $('#container');
jQuery.each(data.query.results.span, function(i, spanItem){
$('<div>' + spanItem.content + '</div>').appendTo(divToUpdate);
if(i == 4) return false;
});
});
});
</script>
结果显示在div容器中。
然后我想我会尝试使用jQuery的JSONP,这里是代码:
<script type="text/javascript">
$(document).ready(function(){
var myURL = 'http://example.com/search?type=2561&location=1562';
jQuery.ajax({
type: 'GET',
url: myURL,
dataType: 'jsonp',
jsonp: false,
jsonpCallback: 'requestCallback',
error: function(xhr, status, error){
alert('error');
}
});
function requestCallback(data){
console.log(data);
}
});
</script>
此时,我只想在控制台日志中显示回调json数据,我不确定我做错了什么,因为它抛出了错误信息。由于JSONP无声地失败,我无法弄清楚代码的哪一部分是不正确的。有人可以帮忙吗?
答案 0 :(得分:0)
请参阅它是由yahoo提供的Web服务。据我所知,后端的这个Web服务使用一些Web抓取工具,通过它可以从您提供的URL中提取数据,然后将提取的数据提供给JSON的形式。