【问题标题】:Spotify API Search returning a 301Spotify API 搜索返回 301
【发布时间】: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


【解决方案1】:

所以我决定坐下来启动 IntelliJ 来看看您的问题。我不确定原因(Node 不是我的主要开发平台),但是是的,这是一个 http / https 问题。更精通节点的人将不得不解释。

如果我需要 http 并尝试这样调用,我会收到您看到的响应。

如果我切换到包含 https,它会按预期工作。

不幸的是,我不知道它的“原因”。自从我在 node 中工作以来已经有一段时间了,所以我有点生疏了,但至少有一个可行的解决方案。

跟进:

默认情况下,http 似乎不会跟随重定向。您必须改用请求模块,并且可以设置一个选项来指定遵循重定向。

How do you follow an HTTP Redirect in Node.js?

【讨论】:

    猜你喜欢
    • 2020-05-20
    • 2021-11-04
    • 2018-10-27
    • 2018-09-09
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    相关资源
    最近更新 更多