我在yql'中执行此查询它在雅虎控制台运行良好,但我认为错误是在脚本中,这是我写的。我只需要获得日期,我不会得到他。什么是错的。这是剧本。
var yql = 'select * from html where url="http://finance.yahoo.com/q?s=mo&ql=1" AND xpath="//*[@id=\'table1\']//tr[7]//td/text()"';
var queryURL = 'https://query.yahooapis.com/v1/public/yql?q=' + yql + '&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?';
$.getJSON(queryURL, function (data) {
var ss;
$.each(data.query.results, function (index, item) {
ss += item.results;
});
$("#test").html(ss);
});
答案 0 :(得分:0)
您需要对yql
参数使用encodeURIComponent()
encodeURIComponent()
方法通过将某些字符的每个实例替换为表示字符的UTF-8编码的一个,两个,三个或四个转义序列来编码统一资源标识符(URI)组件(仅将是由两个“代理”字符组成的字符的四个转义序列
使用
var queryURL = 'https://query.yahooapis.com/v1/public/yql?q='
+ encodeURIComponent(yql) //Notice here
+ '&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?';
var yql = 'select * from html where url="http://finance.yahoo.com/q?s=mo&ql=1" AND xpath="//*[@id=\'table1\']//tr[7]//td/text()"';
var queryURL = 'https://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent(yql) + '&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?';
$.getJSON(queryURL, function(data) {
alert(data.query.results);
console.log(data.query.results);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>