Javascript XMLHTTPRequest错误:主线程上的同步XMLHTTPRequest已弃用。。。(SoundCloudAPI)

Javascript XMLHTTPRequest错误:主线程上的同步XMLHTTPRequest已弃用。。。(SoundCloudAPI),javascript,api,xmlhttprequest,soundcloud,synchronous,Javascript,Api,Xmlhttprequest,Soundcloud,Synchronous,我正在使用XMLHttpRequest访问SoundClouds热门曲目()。我甚至无法进行解析和所有有趣的事情,因为我的控制台记录了以下错误: 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/ 我花了一些时间

我正在使用XMLHttpRequest访问SoundClouds热门曲目()。我甚至无法进行解析和所有有趣的事情,因为我的控制台记录了以下错误:

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的工作方式。也许我做错了什么,你们可以帮忙

下面是导致问题的完整函数(我认为):

如果它改变了什么,我就称它为“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();
}
但即使如此,您也会得到请求的资源上不存在“Access Control Allow Origin”头的
错误。这是CORS浏览器策略错误。您只能向同一来源的资源发出请求


因此,如果您可以修改服务器代码,请从服务器执行该请求,并将客户端AJAX请求更改为从服务器请求数据。

我的意思是。。。ajax请求是同步的。通过将false更改为true使其异步。有关此更改将导致的问题的帮助,请参阅以下问题:谢谢您的回答。我已经更改了我的函数,现在正在执行回调和所有这些操作。我仍然得到CORS浏览器策略错误。我将如何更改您提到的请求?对不起打扰你了…一点也不打扰。我知道的唯一方法是在服务器上作为端点实现soundcloud请求。然后从JS调用该服务器端点。假设您在
http://localhost:5000/index
那么您的端点将类似于
http://localhost:5000/api/gettracks
。希望这会给你一个想法。如果您给我的答案打分,我们也将不胜感激。
addEventListener
是否优于
onreadystatechange
?以下是回复:
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();
}