Javascript 为什么我的jQuery/YQL调用不返回任何内容?

Javascript 为什么我的jQuery/YQL调用不返回任何内容?,javascript,ajax,jquery,yql,Javascript,Ajax,Jquery,Yql,我正在尝试使用jQuery访问YQL,但没有得到响应: 有人知道为什么吗 $(function(){ $.extend( { _prepareYQLQuery: function (query, params) { $.each( params, function (key) { var name = "#{" +

我正在尝试使用jQuery访问YQL,但没有得到响应:

有人知道为什么吗

$(function(){
     $.extend(
         {
             _prepareYQLQuery: function (query, params) {
                 $.each(
                     params, function (key) {
                         var name = "#{" + key + "}";
                         var value = $.trim(this);
                         if (!value.match(/^[0-9]+$/)) {
                             value = '"' + value + '"';
                         }
                         query = query.replace(name, value);
                     }
                 );
                 return query;
             },
             yql: function (query) {
                 var $self = this;
                 var successCallback = null;
                 var errorCallback = null;

                 if (typeof arguments[1] == 'object') {
                     query = $self._prepareYQLQuery(query, arguments[1]);
                     successCallback = arguments[2];
                     errorCallback = arguments[3];
                 } else if (typeof arguments[1] == 'function') {
                     successCallback = arguments[1];
                     errorCallback = arguments[2];
                 }

                 var doAsynchronously = successCallback != null;
                 var yqlJson = {
                     url: "http://query.yahooapis.com/v1/public/yql",
                     dataType: "jsonp",
                     success: successCallback,
                     async: doAsynchronously,
                     data: {
                         q: query,
                         format: "json",
                         env: 'store://datatables.org/alltableswithkeys',
                         callback: "?"
                     }
                 }

                 if (errorCallback) {
                     yqlJson.error = errorCallback;
                 }

                 $.ajax(yqlJson);
                 return $self.toReturn;
             }
         }
     );

  $.yql(
    "SELECT * FROM github.repo WHERE id='#{username}' AND repo='#{repository}'",
    {
      username: "jquery",
      repository: "jquery"
    },
    function (data) {
        if (data.results.repository["open-issues"].content > 0) {
            alert("Hey dude, you should check out your new issues!");
        }
    }
  );
 });

您需要省去引号(因为它们已经作为参数化过程的一部分添加),这是:

…这导致:

SELECT * FROM github.repo WHERE id='"jquery"' AND repo='"jquery"'
SELECT * FROM github.repo WHERE id="jquery" AND repo="jquery"
应该是:

"SELECT * FROM github.repo WHERE id=#{username} AND repo=#{repository}"
……这导致:

SELECT * FROM github.repo WHERE id='"jquery"' AND repo='"jquery"'
SELECT * FROM github.repo WHERE id="jquery" AND repo="jquery"

纠正此错误后,返回的格式为:

{"query":{"count":"1","created":"2010-12-25T21:49:01Z","lang":"en-US","results":{"repository":{"url":"https://github.com/jquery/jquery","has-downloads":{"type":"boolean","content":"false"},"organization":"jquery","homepage":"http://jquery.com/","pushed-at":{"type":"datetime","content":"2010-12-25T09:56:56-08:00"},"created-at":{"type":"datetime","content":"2009-04-03T08:20:14-07:00"},"has-wiki":{"type":"boolean","content":"false"},"fork":{"type":"boolean","content":"false"},"forks":{"type":"integer","content":"496"},"private":{"type":"boolean","content":"false"},"open-issues":{"type":"integer","content":"35"},"name":"jquery","description":"jQuery JavaScript Library","watchers":{"type":"integer","content":"5387"},"owner":"jquery","has-issues":{"type":"boolean","content":"false"}}}}}
因此,您需要一个
.query
,如下所示:

if (data.query.results.repository["open-issues"].content > 0) {