如何检查onreadystatechange是否使用Javascript返回错误?

时间:2017-03-07 05:23:29

标签: javascript jquery json xmlhttprequest

所以我有一个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();

}

感谢任何帮助:)

1 个答案:

答案 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;
            ...
 }