XHRリクエストを使用してバックエンドに電話をかけています。ここに私のフロントエンドのコードがあります:Express res.redirect()リダイレクトではなくHTMLを返す
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}`);
};
よりもむしろリダイレクトは、にリダイレクトされているページのHTMLは、XHR関数から返されます。ボタンをクリックせずに(localhost:4000/spotify
のようなものを介して)ルートに行くと、それは私が望むように動作し、リダイレクトされます。
これは何が起こっているのですか?
ここではバッククックを使用しているようですか? => res.redirect( 'https://accounts.spotify.com/authorize?$ {クエリ}'); –
どのような違いがありますか?それを使わずに試してみて、同じような行動を取る。 –
@DavidR - [これは問題ではありません](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals) – Quentin