簡體   English   中英

通過Ajax提交的表單在錯誤響應中返回[object Object]

[英]Submitted form via Ajax returns [object Object] in error response

表格:

<form class="col-md-4 col-sm-12 col-xs-12 pull-right banner-contact-form" onSubmit="return support_send();" id="contact_form" name="contact_form">

        <div class="col-xs-12 text-center">
            <h3>Application Form</h3>
        </div>
        <div class="form-group col-sm-4">
            <select class="form-control input-md" id="title" name="title" required>
                <option value="" selected hidden>Title</option>
                <option value="1">Mr</option>
                <option value="2">Mrs</option>
                <option value="3">Miss</option>
                <option value="4">Ms</option>
            </select>
        </div>
        <div class="form-group col-sm-8">
            <input type="text" class="form-control input-md" id="contact_name" placeholder="Your Full Name" name="contact_name" required>
        </div>
        <div class="form-group col-sm-12">
            <input type="text" class="form-control input-md" id="post_code" placeholder="Postcode" name="post_code" required>
        </div>
        <div class="form-group col-sm-12">
            <select class="form-control input-md" id="product" name="product" required>
                <option value="" selected hidden>Main product interested in</option>
                <option value="1">Washing Machines</option>
                <option value="2">Washer Dryers</option>
                <option value="3">Tumble Dryers</option>
                <option value="4">Dishwashers</option>
            </select>
        </div>
        <div class="form-group col-sm-12">
            <input type="tel" class="form-control input-md" id="contact_telephone_number" placeholder="Contact Telephone Number" name="contact_telephone_number" required>
        </div>
        <div class="form-group col-sm-12">
            <input type="email" class="form-control input-md" id="email" placeholder="Email Address" name="email">
        </div>
        <div class="col-xs-12">
            <button type="submit" class="btn btn-default col-xs-12 btn btn-success"><span class="banner-contact-form-submit">Apply today</span><br><small>no obligation | fast response</small></button>
        </div>
        <div class="col-xs-12">
            <p id="message_result" class="text-center"></p>
            <p class="text-center"><span class="banner-contact-form-apr">68.9% APR</span> representative <br /> (64.9% APR existing customers)</p>
        </div>
    </form>

Ajax處理程序:

function support_send(){
$.ajax( {
    type: "POST",
    url: "includes/contact_handler.php",
    data: $('#contact_form').serialize(),
    dataType: 'text',
    success: function( response ) {
        alert("It worked");
    },
        error: function(response) {
        alert(response);
    }
});
event.preventDefault()
};

PHP處理程序:

<?php
$name = addslashes($_POST['title'];)
$name = addslashes($_POST['contact_name'];)
$email = addslashes($_POST['email'];)
$telephone = addslashes($_POST['contact_telephone_number'];)
$post_code = addslashes($_POST['post_code'];)
$product = addslashes($_POST['product'];)
$from = 'From: Contact Us Form'; 
$to = 'info@mmulholland.co.uk'; 
$subject = 'New Contact Enquiry';

$body = "From: $name\n E-Mail: $email\n product:\n $product";

if (!empty($_POST)) {                
    if (mail ($to, $subject, $body, $from)) { 
    echo '<p>Your message has been sent!</p>';
} else { 
    echo '<p>Something went wrong, go back and try again!</p>'; 
} 
}
?>

我試圖通過ajax提交聯系表單,然后將其通過電子郵件發送給客戶端,我的問題是它不斷返回[object Object]的錯誤響應。

我認為問題在於提交的表單中的某些字段是對象,但我不知道如何解決此問題。

任何幫助將非常感激。

謝謝。

嘗試:

error: function(xhr, status, error) {
  var err = eval("(" + xhr.responseText + ")");
  alert(err.Message);
}

alert是不是一個調試工具。 它將其參數轉換為字符串。 對象的字符串表示形式是[object Object]

 alert({value: 42}) // shows [object Object] 

請改用console.log 另外,請務必閱讀您正在使用的API的文檔 error回調的簽名是

Function( jqXHR jqXHR, String textStatus, String errorThrown )

因此,您想記錄第二個和第三個參數:

error: function(jqXHR, status, error) {
  console.log('Status:', status);
  console.log('Error:', error);
}

然后,您將知道問題所在並可以開始解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM