如果我将参数传递给function,则XMLHttpRequest的Responsetext是未定义的

时间:2017-08-31 20:00:30

标签: javascript html parameters parameter-passing

所以我有这个HTML网站:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Login Page</title>
    <script src="ClientLogic.js"></script>

</head>
<body onload="checkIfAlreadyLoggedIn(logginAndRegisterReqListener('MyLoginForm'))">

    <form id="myLoginForm" style="display:none" method="post" action='Login.html'>
        <input name="username" id="username" title="username" type="text" placeholder="name" />  <br />
        <input name="password" id="password" title="password" type="password" placeholder="password" /> <br/>
        <input type="submit" value="Submit">
    </form>

</body>
</html>

这是我的Javascript:

function checkIfAlreadyLoggedIn(myFunction) {
    makeGETCallWithSpecificURLAndMethod("/userLoggedIn", myFunction);
}


function logginAndRegisterReqListener() {

    if (this.responseText == "false") {
        for (i = 0; i < arguments.length; i++) {
            document.getElementById(arguments[i]).style.display = "block";
        }
    }
    else {
        console.log(this.responseText); //undefined if I pass logginAndRegisterReqListener parameters in my HTML side. i get the expected result if I dont pass any parameters.
        window.location = '/UserProfile.html';
    }
}



function makeGETCallWithSpecificURLAndMethod(url,specFun) {
    var oReq = new XMLHttpRequest();
    oReq.addEventListener("load", specFun);
    oReq.open("GET", url);
    oReq.send();
}

所以这就是问题所在。正如你所看到的,我在我的HTML网站中调用了另一个函数的参数的一个函数,这个函数有一个字符串作为参数。当我向我的'logginAndRegisterReqListener'函数传递一个我得到的参数未定义时,会发生什么。但是,如果我只调用函数而不传递字符串参数,我得到预期的结果(true / false)。但当然因为我没有任何参数我不能使任何标签可见(在if子句中)。如何通过我的logginAndRegisterReqListener函数传递参数?或者问题在哪里。

问题可能是我不允许将参数传递给使用addeventlistener调用的函数吗?

0 个答案:

没有答案