gpt4 book ai didi

javascript - XMLHTTPRequest 错误 : Synchronous XMLHttpRequest on the main thread is deprecated . ..(SoundCloud API)

转载 作者:行者123 更新时间:2023-11-28 03:32:48 25 4
gpt4 key购买 nike

我正在使用 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”上调用它。

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

最佳答案

您使用的 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” header 错误。这是 CORS 浏览器策略错误。您只能向同源资源发出请求。

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

关于javascript - XMLHTTPRequest 错误 : Synchronous XMLHttpRequest on the main thread is deprecated . ..(SoundCloud API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58022785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com