Spotify API 搜索返回 301
Spotify API Search returning a 301
我正在学习节点,我正在尝试使用 Spotify API 搜索和 return 一位艺术家。页面加载和所有内容,但是当我尝试搜索时,出现此错误
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) ...
中,块 returning
<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。有谁知道我为什么会收到此错误?谢谢!
所以我决定坐下来启动 IntelliJ 来查看您的问题。我不确定原因(Node 不是我的主要开发平台),但是,是的,这是一个 http / https 问题。更精通节点的人将不得不解释。
如果我需要 http 并尝试这样进行调用,我确实会收到您所看到的响应。
如果我切换到包含 https,它会按预期工作。
不幸的是,我不知道它的 "why"。自从我在 node 中工作已经有一段时间了,所以我有点生疏,但至少有一个可行的解决方案。
跟进:
似乎默认情况下 http 不会遵循重定向。您必须改为使用请求模块,并且您可以设置一个选项来指定跟随重定向。
我正在学习节点,我正在尝试使用 Spotify API 搜索和 return 一位艺术家。页面加载和所有内容,但是当我尝试搜索时,出现此错误
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) ...
中,块 returning
<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。有谁知道我为什么会收到此错误?谢谢!
所以我决定坐下来启动 IntelliJ 来查看您的问题。我不确定原因(Node 不是我的主要开发平台),但是,是的,这是一个 http / https 问题。更精通节点的人将不得不解释。
如果我需要 http 并尝试这样进行调用,我确实会收到您所看到的响应。
如果我切换到包含 https,它会按预期工作。
不幸的是,我不知道它的 "why"。自从我在 node 中工作已经有一段时间了,所以我有点生疏,但至少有一个可行的解决方案。
跟进:
似乎默认情况下 http 不会遵循重定向。您必须改为使用请求模块,并且您可以设置一个选项来指定跟随重定向。