我刚刚通过 AJAX 调用来到拐 Angular 处并尝试学习它。我有一个表单,我试图通过 AJAX 调用进行推送,但不断收到无法发送的错误,而且我无法理解为什么它不起作用。
表格:
<form class="form-horizontal" id="contact-form" method="post">
<div class="control-group">
<div class="controls">
<input type="text" name="name" id="name" placeholder="Naam" class="form-control input-lg">
</div>
</div>
<div class="control-group">
<div class="controls">
<input type="text" name="email" id="email" placeholder="Email adres" class="form-control input-lg">
</div>
</div>
<div class="control-group">
<div class="controls">
<textarea name="message" id="message" rows="8" class="form-control input-lg" placeholder="Bericht"></textarea>
</div>
</div>
<div class="form-actions">
<button type="submit" id="submit" class="btn btn-default btn-lg btn-block">Verstuur Bericht</button>
</div>
<div id="succes">
</div>
</form>
Ajax 调用
$('form').bind('submit',function(){
$.ajax({
type : 'POST',
url : 'inc/actions/sendmail.php',
data : $(this).serialize(),
cache : false,
dataType: 'text',
success : function (serverResponse) { alert('mail sent successfully.'); },
error : function (jqXHR, textStatus, errorThrown) {alert('error sending mail');}
});
})
还有sendmail.php
$name = mysqli_real_escape_string($con,$_POST["naam"]);
$from = mysqli_real_escape_string($con,$_POST["email"]);
$message = mysqli_real_escape_string($con,$_POST["bericht"]);
$message = wordwrap($message, 70);
$to = "example@myemail.nl";
$subject = "Een gebruiker heeft een vraag of opmerking";
$body = "Some messages and colloring, to much to paste cause it's inline-markup";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: noreply@ajaxfailure.nl";
if ($name == ''){
echo '<p>U heeft geen naam ingevuld</p>';
}else if($from == ''){
echo '<p>U heeft geen emailadres achter gelaten</p>';
}else if($body == ''){
echo '<p>U heeft geen bericht ingevuld niet ingevuld';
}else {
if (mail ($to, $subject, $body, $headers)) {
echo '<p>Uw bericht is verzonden.</p>';
} else {
echo '<p>Er is iets mis gegaan bij het verzenden van de data, probeer het opnieuw.</p>';
}
}
每次它都会从 AJAX 调用返回错误警报并且不执行任何操作。我的控制台也没有发现错误并且保持完全空白。
我按照网络选项卡上的建议检查了控制台,它甚至没有出现在页面本身上。该部分没有 404 错误。看来请求被取消了。
最佳答案
您输入的名称属性与您的 php 不匹配:
$name = mysqli_real_escape_string($con,$_POST["name"]); //<-- not 'naam'
$from = mysqli_real_escape_string($con,$_POST["email"]);
$message = mysqli_real_escape_string($con,$_POST["message"]); //<-- not 'bericht'
关于javascript - AJAX 调用未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24655983/