我想从URL获取JSON,但jQuery的函数getJSON不起作用。我收到此错误:"无法加载https://bittrex.com/api/v1.1/public/getticker?market=usdt-btc:否“访问控制 - 允许 - 来源'标头出现在请求的资源上。起源' null'因此不允许访问。" 我做错了什么?或者我应该使用其他一些功能? 请帮忙!
function ticker(url)
{
this.Last = 0;
$.getJSON(url, function(data)
{
this.Last = data.result.Last;
});
this.getFullInfo = function()
{
console.log("Last: " + this.Last);
}
}
var usdtBTC = new ticker("https://bittrex.com/api/v1.1/public/getticker?market=usdt-btc");
usdtBTC.getFullInfo();
答案 0 :(得分:2)
有些事情是错的:
该网址无法通过AJAX访问,供全世界查看。 Read up on CORS。该错误实际上来自HEAD
请求,浏览器会自动查看哪些主机&方法可以访问链接。
您需要将this
参数绑定到函数,或者this
将引用全局范围(函数函数):
$.getJSON(url, function(data) {
this.Last = data.result.Last;
}.bind(this));
如果请求有效,您需要等到请求完成后再调用getFullInfo()
(就像超时一样),或者this.Last
仍然是0。 / p>
您几乎总是希望添加失败功能,尤其是在测试时:
var url = "https://bittrex.com/api/v1.1/public/getticker?market=usdt-btc";
$.getJSON(url, function(data) {
console.log(data.result);
}.bind(this))
.fail(function(jqxhr, textStatus, error) {
var err = textStatus + ", " + error;
console.log("Request Failed: " + err);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;