我有一个表单并希望它能够在用户提交表单时执行以下操作:
使用ajax将数据发布到网址。
等待(1)处的脚本完成执行
正常提交表单(action参数中的网址。)
醇>
我已经阅读了以下内容并且很难理解它:
这就是我所拥有的,也是我所尝试过的:
所以我开始停止正常提交表单:
$("form").submit(function(e) {
e.preventDefault();
这很有效。
我现在想用ajax将2个字段(firstName,lastName发布到名为curl.php的脚本中。我添加了这个:
var self = this,
firstName = $('#firstName').val(),
lastName = $('#lastName').val()
$.ajax({
type: "POST",
url: "/curl.php",
data: {firstName: firstName, lastName: lastName},
cache: false
}).done(function(result) {
console.log(result);
self.submit();
}).fail(function() {
alert('error');
});
我的curl.php脚本包含以下内容 - 它只输出2个字段的POST数据:
echo 'FirstName: ' . $_POST['firstName'] . '
';
echo 'LastName: ' . $_POST['lastName'] . '
';
我原以为这会出现在我的控制台中,因为console.log(result)应该从curl.php输出回复?
在“网络”标签中,向curl.php发出请求,但没有响应数据。然后表单按预期提交给email.php。
我不清楚我在进行ajax调用方式是否存在问题,但我认为curl.php实际上并不是"整理&# 34;在email.php执行之前?
请有人给我一些关于我出错的地方的指示。我花了很多时间阅读上述链接和Promises,但我似乎无法理解这一点!
我理解ajax是异步的。但我不知道如何指导它等待"在执行curl.php之前email.php完成执行。