用yql获取价值

时间:2015-07-24 11:23:02

标签: jquery ajax json yql

我在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);
    });

1 个答案:

答案 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>