【发布时间】:2021-10-22 16:27:45
【问题描述】:
这是一个测试程序,因为我正在学习使用 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();
}
结果按预期显示在我的页面中:
response: { "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwdWJsaWNfaWQiOiI3ODIxMDVjNi00ZWRhLTQyMjMtYmQ2Yy1hMDhmMzgzNWExZmUiLCJleHAiOjE2MzQ5MjA4NDR9.iHJQf3qGOJlWcSuw-itTk-IirUGUAnmtNKyUXBDnI0Y" }
token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwdWJsaWNfaWQiOiI3ODIxMDVjNi00ZWRhLTQyMjMtYmQ2Yy1hMDhmMzgzNWExZmUiLCJleHAiOjE2MzQ5MjA4NDR9.iHJQf3qGOJlWcSuw-itTk-IirUGUAnmtNKyUXBDnI0Y
控制台显示此错误
未捕获的 SyntaxError:JSON 输入意外结束 在 JSON.parse() 在 XMLHttpRequest.xhr.onreadystatechange (example.js:36)
【问题讨论】:
-
this.responseText应该是xhr.responseText。 -
@zhulien - 我进行了更改并得到了相同的结果。
-
console.log()responseText。也许你最后有一些/r/n//n工件。 -
在 result.innerHTML.... 之后添加了以下几行 console.log('txt: ' + txt); console.log('只是令牌:' + respJson.token);
-
Got the same error then the following output in the log: ''' txt: { "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwdWJsaWNfaWQiOiI3ODIxMDVjNi00ZWRhLTQyMjMtYmQ2Yy1hMDhmMzgzNWExZmUiLCJleHAiOjE2MzQ5MzI3OTF9.ZntmMGnMsnlC0Z2V3GJcvoYH_g-lN1JqaR0tvanxz7M" } example.js:38 just the token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 .eyJwdWJsaWNfaWQiOiI3ODIxMDVjNi00ZWRhLTQyMjMtYmQ2Yy1hMDhmMzgzNWExZmUiLCJleHAiOjE2MzQ5MzI3OTF9.ZntmMGnMsnlC0Z2V3GJcvoYH_g-lN1JqaR0tvanxz7M
标签: javascript json