【问题标题】:Getting JSON from URL using jQuery使用 jQuery 从 URL 获取 JSON
【发布时间】:2018-07-14 17:33:11
【问题描述】:

我想从 URL 中获取 JSON,但是 jQuery 的函数 getJSON 不起作用。我收到此错误:“无法加载https://bittrex.com/api/v1.1/public/getticker?market=usdt-btc:请求的资源上不存在'Access-Control-Allow-Origin'标头。因此不允许访问源'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();

【问题讨论】:

标签: javascript jquery


【解决方案1】:

有几处是错误的:

  1. 整个世界都无法通过 AJAX 访问该 URL。 Read up on CORS。该错误实际上来自浏览器自动执行的HEAD 请求,以查看允许哪些主机和方法访问该链接。

  2. 您需要将this 参数绑定到函数,否则this 将引用全局范围(函数中的函数):

$.getJSON(url, function(data) {
    this.Last = data.result.Last;
}.bind(this));
  1. 如果请求有效,您需要等到请求完成后再调用getFullInfo()(就像超时一样),否则this.Last 仍然为0。

  2. 您几乎总是想添加一个失败函数,尤其是在测试时:

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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多