我正在使用 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浏览器策略错误。您只能向相同的原点资源提出请求。
因此,如果您可以修改服务器代码,请从服务器执行该请求,然后更改客户端请求以从服务器询问数据。