【发布时间】:2018-01-14 23:40:33
【问题描述】:
我正在使用 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 之类的东西)就去路线,它会按我的意愿工作,并且我会被重定向。
任何想法为什么会发生这种情况?
【问题讨论】:
-
您似乎在这里使用了反引号? => res.redirect(
https://accounts.spotify.com/authorize?${queries}); -
这会有什么不同?在没有的情况下尝试过并获得相同的行为。
-
@DavidR — That's not a problem
标签: javascript node.js express redirect xmlhttprequest