0

此 API 是公开的,您可以免费访问:
https ://prod-public-api.livescore.com/v1/api/react/date/soccer/20210803/1.00

但是当我运行我的 HTML 时,在 Chrome 控制台中会出现错误:

Failed to load resource: the server responded with a status of 403 ()

我应该怎么办?

这是我的脚本代码,它使用从该 API 收集的数据创建一个下拉框:

var $select = $('#matches');

$.getJSON('https://prod-public-api.livescore.com/v1/api/react/date/soccer/20210803/1.00',function(data){
    $select.html('');
    $select.append('<option id="DropDownBox">' + "Escolher Jogo" + '</option>')

    for (var i = 0; i < data['Stages'].length; i++) {
        for (var z = 0; z < data['Stages'][i]['Events'].length; z++) {
            $select.append('<option id="' + data['Stages'][i]['Events'][z]['Eid'] + '" data-stages="' + i + '" data-events="' + z + '">' + data['Stages'][i]['Events'][z]['T1'][0]['Nm'] + " v " + data['Stages'][i]['Events'][z]['T2'][0]['Nm'] + '</option>')
        }
    }
});

笔记:

要运行我的 HTML,我使用 Live Server(Visual Studio 代码扩展)并发布 CORS 以访问外部链接,我使用 Chrome 访问控制允许来源的扩展(https://mybrowseraddon.com/access-control-allow -origin.html )

4

1 回答 1

1

如果您https://prod-public-api.livescore.com在浏览器中访问,那么他们的服务器正在接收该特定域作为发出请求,他们已将自己的域列入白名单以便能够发出请求。

当您打开https://example.com并尝试fetch('https://prod-public-api.livescore.com...')它时,CORS 将被拒绝,因为现在他们的服务器正在接收“https://example.com”作为请求域。

你得到的 403 是因为被 CORS 拒绝。

您可以创建自己的 API 并在服务器端获取数据数据,然后调用自己的 API 来获取它。

于 2021-08-05T14:53:53.713 回答