【发布时间】:2018-09-09 15:58:55
【问题描述】:
我正在使用 XMLHttpRequest 访问 SoundClouds 热门歌曲 (https://api-v2.soundcloud.com/charts?kind=trending&genre=soundcloud:genres: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”上调用它。
也许你可以帮助我。谢谢。
【问题讨论】:
-
我的意思是...ajax 请求是同步的。通过将 false 更改为 true 使其异步。
-
有关此更改将导致的问题的帮助,请参阅此问题:stackoverflow.com/questions/14220321/…
标签: javascript api xmlhttprequest soundcloud synchronous