XMLHTTPREQUEST错误:主线程上的同步XMLHTTPREQUEST已弃用..(SoundCloud API)



我正在使用 xmlhttprequest访问soundclouds 顶级流行轨道(https://api-v2.soundcloud.com/charts?kind = kind = kind = trendend&= SoundCloud:类型:All Music& client_id = 1DFF55BF515582DC759594DAC5BA46E9& q =(。我什至无法使用它来解析和所有有趣的东西,因为我的控制台记录了此错误:

Synchronous XMLHttpRequest on the main thread is deprecated because of 
its detrimental effects to the end user's experience. For more help 
http://xhr.spec.whatwg.org/

据我所知,我花了一些时间寻找答案和 - - 问题是请求中的一些JavaScript 。因此,我查看了Soundcloud API,并在每个曲目的属性中发现了一点:

... "waveform_url":"https://wis.sndcdn.com/2AVcYzUmENai_m.json" ...

因此,我发现类似问题的所有解决方案都无法使用,因为我无法更改其API的工作方式。也许我在做完全错误的事情,你们可以帮忙。

这是导致问题的完整功能(我认为(:

function initialSearch() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', "https://api-v2.soundcloud.com/charts?kind=trending&genre=soundcloud:genres:all-music&client_id=1dff55bf515582dc759594dac5ba46e9&q=", false);
    xhr.addEventListener("load", function() {
        initialArray = JSON.parse(xhr.response);
        }, false);
} 

我将其称为" domcontentloaded",如果它更改了任何内容。

也许您可以帮助我。谢谢。

您正在使用XMLHTTPREQUEST错误。执行异步请求而不是同步。这是一个固定版本:

function initialSearch() {
    var xhr = new XMLHttpRequest();
    xhr.addEventListener("load", function() {
        initialArray = JSON.parse(xhr.response);
    }, false);
    xhr.open('GET', "https://api-v2.soundcloud.com/charts?kind=trending&genre=soundcloud:genres:all-music&client_id=1dff55bf515582dc759594dac5ba46e9&q=");
    xhr.send();
}

,但即使那样,您仍会获得No 'Access-Control-Allow-Origin' header is present on the requested resource错误。这是CORS浏览器策略错误。您只能向相同的原点资源提出请求。

因此,如果您可以修改服务器代码,请从服务器执行该请求,然后更改客户端请求以从服务器询问数据。

最新更新