这个jsonp应该很容易工作,我做错了什么



我正在尝试使用异步jsonp在网页上显示实时价格:

function addscript () {
var url = "http://wdcticker.com/api/ticker?callback=updatePrices" + "&random=" + (new Date()).getTime();
var newScript = document.createElement("script");
newScript.setAttribute("src",url);
newScript.setAttribute("id","jsonp");
var oldScript = document.getElementById("jsonp");
var head = document.getElementsByTagName("head")[0];
if (oldScript == null) {
head.appendChild(newScript);
} else {
head.replaceChild(newScript, oldScript);
}
console.log('done');
}
function updatePrices(result){
alert('got here');
$('#wdcusd').text(result.wdc_usd_avg);
$('#wdcbtc').text(result.wdc_btc_avg);
}

addscript函数每10秒调用一次。回调函数updatePrices()没有被调用。我的控制台显示的错误是:

SyntaxError:缺少;报表前

"btc_e_btc_set": true,

即使http://wdcticker.com/api/ticker完美地传递json-lint。我做错了什么!!?这应该很简单!

Ifhttp://wdcticker.com/api/ticker?callback=updatePrices支持的JSONP,您可能会将其视为该url的响应:

updatePrices({
// JSON here
});

相反,它只是返回如下原始JSON:

{
// JSON here
}

因此,您尝试连接的服务器似乎不支持JSONP,因此需要服务器端支持。不能将JSONP任何JSONAPI一起使用,API服务器必须明确支持并允许JSONP

最新更新