這是一個測驗程式,因為我正在學習使用 JSON 和令牌。終點是 Python Flask。它似乎作業正常,即使它在我的頁面中顯示也很好,只有我在控制臺中看到錯誤。
代碼:
function encodeUser(user, password) {
var token = user ":" password;
var hash = btoa(token);
return "Basic " hash;
}
function login(resultElement) {
result = document.getElementById(resultElement)
u = document.getElementById("email").value;
p = document.getElementById("password").value;
let xhr = new XMLHttpRequest();
let url = config_baseurl "/login"
xhr.open("POST",url,true);
xhr.setRequestHeader("Content-Type","application/json");
xhr.setRequestHeader("Authorization", encodeUser(u, p));
xhr.onreadystatechange = function() {
txt = this.responseText;
respJson = JSON.parse(txt);
result.innerHTML = 'response: ' txt '<br><br>token: ' respJson.token;
};
xhr.send();
}
結果在我的頁面中按預期顯示:
回應:{ “標記”: “eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwdWJsaWNfaWQiOiI3ODIxMDVjNi00ZWRhLTQyMjMtYmQ2Yy1hMDhmMzgzNWExZmUiLCJleHAiOjE2MzQ5MjA4NDR9.iHJQf3qGOJlWcSuw-itTk-IirUGUAnmtNKyUXBDnI0Y”}
代幣: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwdWJsaWNfaWQiOiI3ODIxMDVjNi00ZWRhLTQyMjMtYmQ2Yy1hMDhmMzgzNWExZmUiLCJ2UiJUZIQUiJUZUiCJUZUZUiCJUZUZUiCJUZUZUiQiOiI3ODIxMDVjNi00ZWRhLTQyMjMtYmQ2
控制臺顯示此錯誤
未捕獲的 SyntaxError:在 XMLHttpRequest.xhr.onreadystatechange (example.js:36) 處 JSON.parse () 處的 JSON 輸入意外結束
uj5u.com熱心網友回復:
您可以嘗試使用 fetch / promises 嗎?使用 XMLHttpRequest 計時很困難。我懷疑 responseText 在您解碼 JSON 時實際上沒有值
像這樣的東西
function encodeUser(user, password) {
const token = user ":" password;
const encoded = btoa(token); // NOTE: Base64 is not hashing!
return "Basic " encoded;
}
function login(resultElement) {
const result = document.getElementById(resultElement);
const u = document.getElementById("email").value;
const p = document.getElementById("password").value;
const url = config_baseurl "/login";
const init = {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: encodeUser(u, p),
},
};
fetch(url, init)
.then(res => res.json())
.then(data => {
console.log({ data });
result.innerText = data.token;
})
.catch(console.error);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/334123.html
標籤:javascript json
