javascript - AJAX 调用未执行

标签 javascript php jquery ajax

我刚刚通过 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 错误。看来请求被取消了。

Screendump of console / network

最佳答案

您输入的名称属性与您的 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/

相关文章:

javascript - 如何修复 '' findDOMNode is deprecated in StrictMode'' 错误?

javascript - 获取此 javascript 中的标签

php - 通过PHP将HTML表单数据插入mySQL(表单数组因表行数而异)

javascript - jQuery 更好的事件

javascript - 悬停时如何使列内容显示在工具提示中? HTML5

javascript - 从球形投影 map 上的纬度获取 Y 位置

php - 删除 Woocommerce 中的“添加到购物车”通知并更改 "add to cart"按钮

mysql - codeigniter 中的事件记录

jquery - 按值设置选择选项 'selected'

javascript - 如何使用feathersjs过滤服务?