ajax表单不发送标头
ajax form is not sending headers
所以当我提交表单时,我不会得到任何头数据。我已经做了十亿次这种类型的提交(当然是象征性的),但仍然有可能我遗漏了一些东西。想法?以下代码:
$('#app-submit').click(function(e){
e.preventDefault();
validate();
var data = [];
var required = [];
var questions = [];
var errors = 0;
$('#application-form :input:not(:radio):not(:button)').each(function(){
name = $(this).attr('id');
val = $(this).val();
data[name] = val;
if($(this).closest('div').hasClass('has-error')){
errors++;
}
});
$('#application-form .not-empty').each(function(){
name = $(this).attr('id');
val= $(this).val();
required[name] = val;
});
for(var i = 1; i < 12; i++){
name = 'q'+i;
val = $('input[name="q'+i+'"]:checked').val();
if($('input[name="q'+i+'"]').closest('div').hasClass('has-error')){
errors++;
}
questions[name] = val;
}
if(!errors){
$.ajax({
url : 'assets/server/submitApp.php',
type : 'POST',
data : data,
dataType : 'JSON',
success : function(data){
if(!data.errors){
$('#application-holder').html(data.message);
}else{
alert(data.message);
}
}
});
}
});
注意事项:HTTP头没有显示在控制台中,只是为了验证我没有得到数据,我做了一个var_dump($_REQUEST)
,它也显示为null
更新:我已经编辑了代码,只提交了我构建的一个数组,但它仍然没有发送任何数据。事件,但在我提交ajax调用之前,如果我放置console.log(data),它将显示数组确实充满了数据。
您正在将一个数组传递给data
。
如果执行此操作,则数组必须使用标准数字索引包含一系列具有name
和value
属性的对象。
你没有那样做。
修改数组的唯一方法是将命名属性添加到数组中,就好像它是一个普通对象一样。
首先使用普通对象。
var data = [];
应该是:
var data = {};
对象应具有命名属性。数组不是,它们是用于顺序数据的。
相关文章:
- Ajax发布表单序列化,发布引号'
- JS验证ajax返回的html中的表单数据
- 将图像上传ajax与表单提交ajax相结合
- 使用ajax将数据从一个步骤发送到下一个步骤的3步表单
- 表单不会通过ajax提交
- Django-提交表单Ajax(替换Div)
- 在wordpress中添加带有短代码的联系表单ajax
- 成功后如何提交表单ajax帖子
- 同一页面上的多个表单AJAX
- 表单AJAX发送内部的twitter引导模式(Symfony2)
- 在Javascript中获取重力表单AJAX确认消息而不是输出
- HTML提交表单ajax响应
- Javascript表单AJAX样式
- 动态填充的Jquery表单;Ajax
- 对提交表单ajax帖子进行验证
- fanybox表单ajax post关闭提交
- jQuery表单:Ajax响应被显示,但是源代码中没有显示
- 重新加载提交表单Ajax调用
- 在jQuery上正常重新发送HTML表单ajax失败
- fanybox表单ajax提交,只有一个ajax请求