【发布时间】:2016-07-11 06:46:18
【问题描述】:
我有一个表格:
<form onsubmit="return sendEmail()" id="emailForm" name="emailForm">
<input type="hidden" name="_cc" value="email2@gmail.com" />
<div class="row">
<p class="left">
<label for="name">Name*</label>
<input type="text" required="required" name="name" id="name" value="" />
</p>
<p class="right">
<label>Email*</label>
<input type="email" required="required" name="_replyto">
</p>
</div>
<div class="row">
<p class="left">
<label for="phone">Phone/Mobile</label>
<input type="text" required="required" name="phone" id="phone" value="" />
</p>
<p class="right">
<label for="company">Organization</label>
<input type="text" name="company" id="company" value="" />
</p>
</div>
<p>
<label for="message" class="textarea">Queries</label>
<textarea class="text" name="message" id="message"></textarea>
</p>
<br />
<div style="background-color: mediumaquamarine;margin-bottom: 2%" id="success"></div>
<button type="submit" class="btn btn-xl">Send</button>
</form>
和 jquery 代码使用 ajax post 提交表单:
function sendEmail(){
$.ajax({
url: "http://formspree.io/email1@gmail.com",
method: "POST",
data: $('#emailForm').serialize(),
dataType: "json",
success: function(result){
$("#success").html("Message successfully sent");
},
error: function (request, status, error) {
$("#success").html("Oops! Something went wrong. Please try again");
}
});
return false
}
但它总是提交get请求并导致get方法不被允许的错误响应,只使用post。(405响应代码)。
不知道这里出了什么问题。
【问题讨论】:
-
您必须在发送 AJAX 请求之前阻止表单验证。
-
第一件事,检查文档:api.jquery.com/jQuery.ajax。第二件事,使用
submit()事件处理程序并停止正常的表单提交 -
你在尝试这个吗?
<form ... method="post">
标签: javascript jquery ajax