Jquery 尝试使用ajax发布formdata时,表单没有发布任何内容
使用ajax发布表单时,我看到所有数据都是空的。我发布到的php页面返回一个结果,因此ajax调用可以正常工作 这是我的ajax代码:Jquery 尝试使用ajax发布formdata时,表单没有发布任何内容,jquery,html,ajax,Jquery,Html,Ajax,使用ajax发布表单时,我看到所有数据都是空的。我发布到的php页面返回一个结果,因此ajax调用可以正常工作 这是我的ajax代码: $("#vacature-form").on('submit',(function(e){ e.preventDefault(); grecaptcha.ready(function() { // do request for recaptcha token // response is promise with passed
$("#vacature-form").on('submit',(function(e){
e.preventDefault();
grecaptcha.ready(function() {
// do request for recaptcha token
// response is promise with passed token
grecaptcha.execute('6LdtbqEUAAAAAMU9yt7aKM0H0xUqXpQOsNhn0nNA', {action: 'new_email'}).then(function(token) {
// add token to form
$('#vacature-form').prepend('<input type="hidden" name="g-recaptcha-response" value="' + token + '">');
$.ajax({
url: "mail/mail_send.php",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
success: function(data){
$(".error-container2").slideDown().html(data);
},
error: function(){
console.log('oops');
}
});
});
});
}));
$(“#休假表”)。关于('提交',(功能(e){
e、 预防默认值();
grecaptcha.ready(函数(){
//对recaptcha令牌的do请求
//响应是带有传递令牌的承诺
grecaptcha.execute('6ldtbqeuaaaaamu9yt7akm0h0xuqxpqosnn0nna',{action:'new_email'})。然后(函数(令牌){
//将令牌添加到表单
$(“#休假表”)。前缀(“”);
$.ajax({
url:“mail/mail_send.php”,
类型:“POST”,
数据:新表单数据(本),
contentType:false,
cache:false,
processData:false,
成功:功能(数据){
$(“.error-container2”).slideDown().html(数据);
},
错误:函数(){
log('oops');
}
});
});
});
}));
这是我的html表单:
<form id="vacature-form" action="mail/mail_send.php" enctype="multipart/form-data" method="post" class="contact_form row contact-form" role="form">
<p class="col-sm-12 kl-fancy-form">
<input type="text" name="name" class="form-control form-control-name" tabindex="1" maxlength="35" required="">
<label class="control-label">Naam</label>
</p>
<p class="col-sm-12 kl-fancy-form">
<select class="geslacht form-control geslacht-control" name="geslacht" required>
<option value="" disabled selected>Kies uw geslacht</option>
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
</select>
</p>
<p class="col-sm-12 kl-fancy-form">
<input type="text" name="place" class="form-control form-control-place"tabindex="1" maxlength="35" required="">
<label class="control-label">Woonplaats</label>
</p>
<p class="col-sm-12 kl-fancy-form">
<input type="text" name="phone" class="form-control form-control-phone" tabindex="1" maxlength="35" required="">
<label class="control-label">Telefoonnummer</label>
</p>
<p class="col-sm-12 kl-fancy-form">
<input type="file" name="files[]" class="file-control form-control form-control-file" tabindex="1" maxlength="35" multiple>
<label class="control-label">Upload je CV</label>
</p>
<p class="col-sm-12 kl-fancy-form">
<input type="text" name="email" class="form-control form-control-email h5-email" tabindex="1" maxlength="35" required="">
<label class="control-label">Emailadres</label>
</p>
<p class="col-sm-12 kl-fancy-form">
<textarea name="message" class="form-control form-control-message" cols="30" rows="10" tabindex="4" required=""></textarea>
<label class="control-label">Bericht</label>
</p>
<p class="col-sm-12">
<button class="btn btn-fullcolor sendbutton" type="submit">Verzenden</button>
</p>
<div class="col-sm-12">
<div class="error-container2 lean"></div>
</div>
</form>
纳姆
基斯乌夫格斯拉赫特酒店
人
沃鲁
伍恩帕茨
Telefoonnummer
上传je简历
电子邮件地址
记录
弗森登
我曾尝试将enctype=“multipart/form data”
添加到我的表单中,但没有任何改变
表单数据
在“我的网络”选项卡中,没有显示任何内容,甚至没有显示表单中输入字段的名称,只是完全为空。如何解决这个问题?您正在使用this
获取表单,在promise resolve回调中,但您应该这样做
$("#vacature-form").on('submit',(function(e){
e.preventDefault();
var form = e.target;
grecaptcha.ready(function() {
// do request for recaptcha token
// response is promise with passed token
grecaptcha.execute('6LdtbqEUAAAAAMU9yt7aKM0H0xUqXpQOsNhn0nNA', {action: 'new_email'}).then(function(token) {
// add token to form
$('#vacature-form').prepend('<input type="hidden" name="g-recaptcha-response" value="' + token + '">');
$.ajax({
url: "mail/mail_send.php",
type: "POST",
data: new FormData(form),
contentType: false,
cache: false,
processData:false,
success: function(data){
$(".error-container2").slideDown().html(data);
},
error: function(){
console.log('oops');
}
});
});
});
}));
$(“#休假表”)。关于('提交',(功能(e){
e、 预防默认值();
var form=e.target;
grecaptcha.ready(函数(){
//对recaptcha令牌的do请求
//响应是带有传递令牌的承诺
grecaptcha.execute('6ldtbqeuaaaaamu9yt7akm0h0xuqxpqosnn0nna',{action:'new_email'})。然后(函数(令牌){
//将令牌添加到表单
$(“#休假表”)。前缀(“”);
$.ajax({
url:“mail/mail_send.php”,
类型:“POST”,
数据:新表单数据(表单),
contentType:false,
cache:false,
processData:false,
成功:功能(数据){
$(“.error-container2”).slideDown().html(数据);
},
错误:函数(){
log('oops');
}
});
});
});
}));
您正在使用this
在promise resolve回调中获取表单,但您应该这样做
$("#vacature-form").on('submit',(function(e){
e.preventDefault();
var form = e.target;
grecaptcha.ready(function() {
// do request for recaptcha token
// response is promise with passed token
grecaptcha.execute('6LdtbqEUAAAAAMU9yt7aKM0H0xUqXpQOsNhn0nNA', {action: 'new_email'}).then(function(token) {
// add token to form
$('#vacature-form').prepend('<input type="hidden" name="g-recaptcha-response" value="' + token + '">');
$.ajax({
url: "mail/mail_send.php",
type: "POST",
data: new FormData(form),
contentType: false,
cache: false,
processData:false,
success: function(data){
$(".error-container2").slideDown().html(data);
},
error: function(){
console.log('oops');
}
});
});
});
}));
$(“#休假表”)。关于('提交',(功能(e){
e、 预防默认值();
var form=e.target;
grecaptcha.ready(函数(){
//对recaptcha令牌的do请求
//响应是带有传递令牌的承诺
grecaptcha.execute('6ldtbqeuaaaaamu9yt7akm0h0xuqxpqosnn0nna',{action:'new_email'})。然后(函数(令牌){
//将令牌添加到表单
$(“#休假表”)。前缀(“”);
$.ajax({
url:“mail/mail_send.php”,
类型:“POST”,
数据:新表单数据(表单),
contentType:false,
cache:false,
processData:false,
成功:功能(数据){
$(“.error-container2”).slideDown().html(数据);
},
错误:函数(){
log('oops');
}
});
});
});
}));
这是一种不理解承诺的解析是异步的情况,这意味着“This”在访问时与承诺创建时具有不同的含义。简单地说,如果您需要引用外部“this”,请按照他的回答设置一个局部变量,并在异步函数中使用它。这是一种不理解承诺的解析是异步的情况,这意味着“this”在访问时与承诺创建时具有不同的含义。简单地说,如果你需要引用外部的“this”,根据他的回答,设置一个局部变量并在异步函数中使用它。是的,4分钟内我可以是的,4分钟内我可以