所以我有一个JSON API,我在最后放了一个变量,如果变量是一个“有效”的用户名(如果该帐户实际存在),它将返回有关它的信息,但如果该帐户不是有效/不存在它返回{}并且在我访问API的网站的控制台中显示错误说
Uncaught TypeError: Cannot read property 'steamID' of undefined
at XMLHttpRequest.profileCheck.onreadystatechange
所以我想知道如何检查if语句是否返回错误?例如if(typeError === true) { do code } else { something else};
以下是我用来访问API的代码(如果这很重要的话):
function isID64() {
var id64 = document.getElementById("username").value;
var realID64;
var profileCheck = new XMLHttpRequest;
profileCheck.open("GET", "<api im using>" + id64);
profileCheck.onreadystatechange = function() {
if (profileCheck.readyState === 4) {
var profileCheckResponse = JSON.parse(profileCheck.responseText);
realID64 = profileCheckResponse.playerstats.steamID;
...
}
};
profileCheck.send();
}
感谢任何帮助:)
答案 0 :(得分:0)
我认为这种类型错误是因为您使用JSON文件从后端(php或其他)发送数据。如果用户不存在,则发送null或字符串。但是在前端 JSON.parse语句期望 json变量。在你的后端做以下事情
如果(userexist()) //将数据保存到json变量中; 其他 //将“用户不存在”保存到您的json变量中。
然后从前端(Javascript)更改您的代码
if (profileCheck.readyState === 4)
{
var profileCheckResponse = JSON.parse(profileCheck.responseText);
if(profileCheckResponse[0]=="User Not Exist";
//Display Error
else
realID64 = profileCheckResponse.playerstats.steamID;
...
}