Javascript Ajax只能同步工作
我有以下设置ajax请求的代码:Javascript Ajax只能同步工作,javascript,php,ajax,asynchronous,xmlhttprequest,Javascript,Php,Ajax,Asynchronous,Xmlhttprequest,我有以下设置ajax请求的代码: function sendAjaxRequest() { ajax.open("post", "form.php", false); ajax.setRequestHeader("Content-Type", "application/json"); ajax.onreadystatechange = gotResponseFromServer(); ajax.sen
function sendAjaxRequest() {
ajax.open("post", "form.php", false);
ajax.setRequestHeader("Content-Type", "application/json");
ajax.onreadystatechange = gotResponseFromServer();
ajax.send(jsonObject);
}
<?php
require_once "database_connection.php";
con = mysqli_connect($host, $user, $password,$db) OR die("Failed to connect to MySQL: " . mysqli_connect_error());
$data = file_get_contents("php://input");
$decodedData = json_decode($data);
//$verifyCode = md5(rand()."");
$name = $decodedData->{'name'};
$surname = $decodedData->{'surname'};
$email = $decodedData->{'email'};
$phone = $decodedData->{'phone'};
$birthDate = $decodedData->{'birthDate'};
$studies = $decodedData->{'studies'};
$work = $decodedData->{'work'};
$married = $decodedData->{'married'};
$skills = $decodedData->{'skills'};
$hobby = $decodedData->{'hobby'};
$city = $decodedData->{'city'};
$gender = $decodedData->{'gender'};
$baptized = $decodedData->{'baptized'};
$suggestions = $decodedData->{'suggestions'};
$sql = "INSERT INTO Voluntari (_name, _surname, _email, _phone, _birthDate, ".
"_studies, _work, _married, _skills, _hobby, _city, _gender, _baptized, _suggestions) ".
"VALUES ('$name', '$surname', '$email', '$phone', '$birthDate', '$studies', '$work', '$married',".
"'$skills', '$hobby', '$city', '$gender', '$baptized', '$suggestions' );";
if(!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
} else {
//sendConfirmationMail();
echo "added";
}
mysqli_close($con);
?>
这是一个执行请求的php:
function sendAjaxRequest() {
ajax.open("post", "form.php", false);
ajax.setRequestHeader("Content-Type", "application/json");
ajax.onreadystatechange = gotResponseFromServer();
ajax.send(jsonObject);
}
<?php
require_once "database_connection.php";
con = mysqli_connect($host, $user, $password,$db) OR die("Failed to connect to MySQL: " . mysqli_connect_error());
$data = file_get_contents("php://input");
$decodedData = json_decode($data);
//$verifyCode = md5(rand()."");
$name = $decodedData->{'name'};
$surname = $decodedData->{'surname'};
$email = $decodedData->{'email'};
$phone = $decodedData->{'phone'};
$birthDate = $decodedData->{'birthDate'};
$studies = $decodedData->{'studies'};
$work = $decodedData->{'work'};
$married = $decodedData->{'married'};
$skills = $decodedData->{'skills'};
$hobby = $decodedData->{'hobby'};
$city = $decodedData->{'city'};
$gender = $decodedData->{'gender'};
$baptized = $decodedData->{'baptized'};
$suggestions = $decodedData->{'suggestions'};
$sql = "INSERT INTO Voluntari (_name, _surname, _email, _phone, _birthDate, ".
"_studies, _work, _married, _skills, _hobby, _city, _gender, _baptized, _suggestions) ".
"VALUES ('$name', '$surname', '$email', '$phone', '$birthDate', '$studies', '$work', '$married',".
"'$skills', '$hobby', '$city', '$gender', '$baptized', '$suggestions' );";
if(!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
} else {
//sendConfirmationMail();
echo "added";
}
mysqli_close($con);
?>
我做错了什么?如何使请求保持异步并使脚本工作?如果您看这里,例如:您将看到参数的描述如下: openmethod,url,异步 方法:请求的类型:GET或POST url:文件在服务器上的位置 异步:真异步或假同步
要使请求异步,必须调用ajax.openpost、form.php、true 除非对函数gotResponseFromServer的调用返回另一个函数,否则它可能是
ajax.onreadystatechange = gotResponseFromServer;
i、 e.您希望将函数分配给onreadystatechange,而不是其返回值。您是如何定义ajax的?它是一个jQuery变量吗?不,如果可行的话,它是xmlhttprequestry和jQuery。这不会回答OP的查询。是的..我知道..但问题是表单不会以async true插入数据库