【发布时间】:2015-11-13 11:30:49
【问题描述】:
我正在学习节点,我正在尝试使用 Spotify API 搜索并返回艺术家。页面加载和一切,但是当我尝试搜索时,我得到了这个错误
undefined:1
<html>
^
SyntaxError: Unexpected token <
at Object.parse (native)
at IncomingMessage.<anonymous> (/Users/edwinzhang/Node_Courses/spotify-recommend/server.js:23:25)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
at process._tickCallback (node.js:415:13)
经过一番挖掘,我发现我收到此错误的原因是:
var searchReq = http.get(options, function(response) {
response.on('data', function(chunk) {
item += chunk;
console.log(item);
});
response.on('end', function() {
console.log('end');
console.log(item);
item = JSON.parse(item);
emitter.emit('end', item);
});
response.on('error', function() {
emitter.emit('error');
});
});
在response.on('data', function(chunk) ...,块正在返回
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
请求的路径(据说)是 api.spotify.com/v1/search?q=sam&limit=1&type=artist。有谁知道我为什么会收到这个错误?谢谢!
【问题讨论】:
-
你不指定,你用的是HTTPS还是HTTP?您提供的 URL 有效。您可以将其粘贴到浏览器中并验证您确实收到了结果。但是,如果您提供非 SSL URL,则 spotify 会 301 响应并将请求转发到 HTTPS 等效项。这可能与您尝试的内容相关,也可能不相关,因为从我所看到的所有内容中,spotify 正在为您处理 URL 重写。还有一些东西,要检查。
-
@Khepri 啊,我明白了。我正在使用 HTTP。似乎 url 会自动重定向到 HTTPS。这会是我出错的原因吗?
-
只是一个观察。它可能相关,也可能不相关。我会尝试将您的 API 调用中的 URL 更改为 HTTPS 以消除 301 重定向并查看您的结果是否发生变化。可能不是问题,但是……消除的过程。
-
相关,请使用HTTPS。 (我在 Spotify 工作)
标签: node.js spotify http-status-code-301