Javascript 为什么我的jQuery/YQL调用不返回任何内容?
我正在尝试使用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 = "#{" +
$(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) {