#javascript #node.js #fetch #node-fetch
#javascript #node.js #выборка #выборка узла
Вопрос:
Итак, я пытаюсь дублировать веб-запрос в NodeJS, вот мой код:
const fetch = require('node-fetch');
(async () => {
let t = `working_access_token`
let uid = 'user_ID'
let url = `https://api.prodigygame.com/game-auth-api/jwt/${uid}?token=${t}amp;userID=${uid}`
let userID = uid
var tokendata = await (await fetch(url)).json()
let arenaseason = await (await fetch(`https://api.prodigygame.com/leaderboard-api/user/${userID}/init?userID=${userID}`, {
method: 'GET',
credentials: 'same-origin',
headers: {
'Authorization': `Bearer ${tokendata.token}`,
},
})).json();
arenaseason = arenaseason.seasonID;
console.log(arenaseason)
var tokendata = await (await fetch(url)).json()
console.log(await (await fetch(("https://api.prodigygame.com/leaderboard-api/season/" arenaseason "/user/" userID "/pvp?userID=" userID), {
headers: {
"authorization": `Bearer ${tokendata.token}`,
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"sec-fetch-mode": "cors"
},
referrer: "https://play.prodigygame.com/",
referrerPolicy: "no-referrer-when-downgrade",
body: ("seasonID=" arenaseason "amp;action=win"),
method: "POST",
mode: "cors"
})).text())
})()
Итак, в NodeJS первый запрос https://api.prodigygame.com/leaderboard-api/user/${userID}/init?userID=${userID}
работает нормально, но следующий не возвращает значение. Однако, когда я попробовал это в браузере, он работает нормально,
как показано здесь.
Поэтому он должен возвращать значение, подобное этому:
{"points":700,"weeklyPoints":700,"modifiedDate":"2020-12-13T16:22:32.212Z","seasonID":58,"numMatches":7}
Но он просто возвращается как пустой,
вот так.
Чего мне здесь не хватает?
Комментарии:
1. Может ли быть так, что браузеру присваивается файл cookie?
2. Я смог сделать это с помощью cURL, так что это не проблема
3. Мы видим только часть вашего кода без учетных данных, поэтому его сложно воссоздать. Кроме того, код браузеров явно отличается (без выборки узлов).