【发布时间】:2018-09-24 21:17:11
【问题描述】:
我对 Javascript 还是很陌生,我不确定我在这里做错了什么。
我的目标是通过 SoundCloud API 检索指定曲目(带有它的 id)的相关 SoundCloud 曲目列表。 在执行 XMLHttpRequest 时出现此错误:
请求中没有“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://127.0.0.1:49458” 使用权。响应的 HTTP 状态代码为 500。
所以从搜索中我发现,它必须与 SoundCloud 用来使 GET 请求成为可能的 CORS Header 有关。
查看它所说的 API 文档,错误代码 500 表示 SoundCloud 站点上的内部服务器错误。但是我现在已经尝试了一整天,我不敢相信我只是越来越不走运了。
这是我的请求函数:
function getRelated(soundcloudID) {
var xhr = new XMLHttpRequest();
xhr.open('GET', "https://api.soundcloud.com/tracks/" + soundcloudID +"/related?client_id=1dff55bf515582dc759594dac5ba46e9", false);
xhr.addEventListener("load", function() {
filterBubble.push(JSON.parse(xhr.response));
}, false);
xhr.send();
}
我知道这不是执行此类请求的最佳方式,我应该将其更改为回调函数。我会这样做,但我很确定这与它无法正常工作无关。
该请求也不适用于 SoundCloud (https://api-v2.soundcloud.com/charts?kind=trending&genre=soundcloud:genres:all-music&client_id=1dff55bf515582dc759594dac5ba46e9&q=) 上的热门歌曲。
现在有趣的是,我对通过 API 的搜索请求没有任何问题。 https://api.soundcloud.com/tracks?client_id=1dff55bf515582dc759594dac5ba46e9&q= 的 XMLHttpRequests 工作正常。
我在这里做错了什么?
或者我只是愚蠢,因为我正在使用 localhost 进行测试?
【问题讨论】:
-
最好把你的客户ID从代码中去掉
标签: javascript xmlhttprequest soundcloud