gpt4 book ai didi

javascript - Express res.redirect() 返回 HTML 而不是重定向

转载 作者:行者123 更新时间:2023-11-30 15:07:20 25 4
gpt4 key购买 nike

我正在使用 XHR 请求调用我的后端。这是我的前端代码:

var makeRequest = function(method, url, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
callback(xhr.responseText);
}
};
xhr.open(method, url);
xhr.send();
}

document.getElementById('button').addEventListener('click', function() {
makeRequest('GET', '/spotify', console.log);
});

这是我的 /spotify 路由后端代码:

const Querystring = require('querystring');

module.exports = (req, res) => {
const queries = Querystring.stringify({
client_id: process.env.SPOTIFY_ID,
response_type: 'code',
redirect_uri: 'http://localhost:3000/redirect'
});
res.redirect(`https://accounts.spotify.com/authorize?${queries}`);
};

不是重定向,而是从 XHR 函数返回被重定向到的页面的 HTML。如果我没有点击按钮(通过 localhost:4000/spotify 之类的东西)进入路线,它会按我想要的方式工作,我会被重定向。

知道为什么会这样吗?

最佳答案

这是正常的预期行为。

重定向意味着“您要的内容就在这里”。

重定向意味着“浏览器应将此 URL 作为新页面加载”。

您从 XMLHttpRequest 发出了请求。这意味着 XMLHttpRequest 将处理响应。服务器表示它应该从其他某个 URL 获取内容,因此 XMLHttpRequest 获取该 URL 并在其 responseText 对象中提供数据。

关于javascript - Express res.redirect() 返回 HTML 而不是重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45550750/

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