【发布时间】:2019-08-29 17:36:58
【问题描述】:
我正在为网站构建用户注册。它使用 AJAX 发送数据。我创建了一个对象来存储用户数据并通过函数将对象发送到服务器。
sendUserData(passenger, "user_registration.php");
注意:
-
在 HTML 文档中单击按钮调用
signupUser();。 -
sendUserData()是发送用户详细信息的函数。 -
passenger是存储用户数据的对象。 -
sendUserData();位于链接到 HTML 页面的单独脚本中。(全局范围)
这是我用来做这个的代码
//Sign Up A User
var signupUser = function () {
// User Object
var passenger = {
userName : document.getElementById("userFirstName").value,
userEmail : document.getElementById("userEmail").value,
country : document.getElementById("country").value,
password : document.getElementById("userPassword").value,
passwordVerify : document.getElementById("userPasswordVerify").value,
passwordStatus : Boolean
};
// Verifies the password ("password" and "re-enter password")
verifyPassword(passenger.password,passenger.passwordVerify,passenger.passwordStatus);
if (passenger.passwordStatus == true) {
sendUserData(passenger, "user_registration.php");
console.log(passenger);
}
};
问题在于在按钮上调用函数signupUser(),
函数在verifyPassword(); 之后停止。
sendUserData(passenger, "user_registration.php");在chrome调试工具中调用,报错“passenger is not defined at : 1:13”
请帮我找到答案。 谢谢。
编辑:
sendUserData();函数
这是在链接到 HTML 页面的单独 javascript 文件中。
function sendUserData (userDetails, destinationPage, functionToExecute) {
var userDetailsJson = JSON.stringify(userDetails);
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if(xhr.readyState == 4 && xhr.status == 200 ) {
console.log(userDetailsJson);
window.alert("Successfully Posted");
console.log(xhr.responseText);
if(functionToExecute) {
functionToExecute();
}
}
};
xhr.open("POST", destinationPage, false);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("m=" +userDetailsJson);
}
【问题讨论】:
-
你能显示
sendUserData函数的代码吗? -
是的。我会将其添加到问题的末尾。
标签: javascript html scope