【发布时间】:2020-05-15 00:55:40
【问题描述】:
我想用 AJAX 发送它。我哪里错了?我得到的错误是:
主线程上的同步 XMLHttpRequest 已被弃用,因为它会对最终用户的体验产生不利影响。如需更多帮助,请查看https://xhr.spec.whatwg.org/.send@jquery.min.js:4
$(document).ready(function() {
$("#submit-email").click(function(event) {
var email = document.getElementById('mail').value;
var message = document.getElementById('message').value;
var dataString = {
"mail": email,
"message": message
}
$.ajax({
type: "post",
url: "controller/email.php",
data: dataString,
success: function(html) {
alert('Success!');
}
});
event.preventDefault();
});
});
<form>
<input type="email" name="mail" id="mail" required="required" class="form" placeholder="Email" />
<input type="hidden" name="message" id="message" value="test value" />
<button type="submit" id="submit-email" name="submit" class="submit-email">Send Message</button>
</form>
<?php
if(isset($_POST['submit']) ){
$youremail = 'hello@blahblah.net';
$user_email = $_POST['mail'];
$message = $_POST['message'];
$and = 'blahblah.net';
$body = "You requested we email the following to you: $message. Regards, Team";
$headers = "From: $youremail";
mail($user_email, 'blahblah.net', $body, $headers );
}
$newURL = '../index-open.php';
header('Location: '.$newURL);
?>
【问题讨论】:
-
你是说页面刷新了?因为它不会在您的问题中给出 JS(由于
event.preventDefault())。此外,该错误与显示的代码无关,因为它是关于同步请求的警告,但您使用的代码是异步的 - 除非您在全局 AJAX 设置中设置了async: false,在这种情况下只需删除它财产。 -
使用 FormData() 设置对象数据
-
@Rory McCrossan 我没有触及 ajax 设置,我相信默认情况下是正确的。知道如何检查吗?根据 Zeeshan 的建议编辑后,它没有刷新。