Javascript ajax表单未发送头
因此,当我提交表单时,我不会得到任何标题数据。我已经做了十亿次这种类型的提交(当然是象征性的),但仍然有可能我遗漏了一些东西。思想?代码如下:Javascript ajax表单未发送头,javascript,jquery,ajax,Javascript,Jquery,Ajax,因此,当我提交表单时,我不会得到任何标题数据。我已经做了十亿次这种类型的提交(当然是象征性的),但仍然有可能我遗漏了一些东西。思想?代码如下: $('#app-submit').click(function(e){ e.preventDefault(); validate(); var data = []; var required = []; var questions = []; var erro
$('#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);
}
}
});
}
});
$(“#应用程序提交”)。单击(功能(e){
e、 预防默认值();
验证();
var数据=[];
所需风险值=[];
var问题=[];
var误差=0;
$('#申请表:输入:不(:单选):不(:按钮))。每个(函数(){
name=$(this.attr('id');
val=$(this.val();
数据[名称]=val;
if($(this).closest('div').hasClass('has-error')){
错误++;
}
});
$('#申请表.非空')。每个(函数(){
name=$(this.attr('id');
val=$(this.val();
必需的[名称]=val;
});
对于(变量i=1;i<12;i++){
名称='q'+i;
val=$('input[name=“q'+i+'”]:选中').val();
if($('input[name=“q'+i+'”).closest('div').hasClass('has-error')){
错误++;
}
问题[名称]=val;
}
如果(!错误){
$.ajax({
url:'assets/server/submitap.php',
键入:“POST”,
数据:数据,
数据类型:“JSON”,
成功:功能(数据){
如果(!data.errors){
$('#应用程序持有者').html(data.message);
}否则{
警报(数据、消息);
}
}
});
}
});
注:
HTTP头没有显示在控制台中,只是为了验证我没有获取数据,我做了一个var\u转储($\u请求)
,它也显示为null
更新:我编辑了代码,只提交了我构建的一个数组,但它仍然没有发送任何数据。事件,但在提交ajax调用之前,如果我放置一个console.log(数据),它将显示数组中确实充满了数据 您正在将数组传递给
数据
如果执行此操作,则数组必须使用标准数字索引包含一系列具有name
和value
属性的对象
你没有那样做
修改数组的唯一时间是将命名属性添加到数组中,就像它是普通对象一样
首先使用普通对象
var data = [];
应该是:
var data = {};
对象应具有命名属性。数组不是,它们是用于顺序数据。哪些标头数据没有被发送?您是如何测试它的?您没有看到标题数据是什么意思?您的服务器正在从客户端获取请求,但您没有看到HTTP头?你在看什么?你的PHP日志怎么说?我没有得到http数据和PHP寄存器上的var_dump没有什么你怎么知道
var_dump($_请求)
返回null
?你觉得怎么样?$\u请求
与标题有什么关系?好吧,我想我可能混淆了一些术语。我指的头数据不是php的header()
函数,而是从客户端表单发送到我正在运行的服务器脚本的文本头数据。在url:
选项i中找到$.ajax
调用$\u REQUEST
将告诉我脚本从提交中收到了哪些数据,我还通常运行var\u dump
,这样我就可以看到我正在处理的内容的结构,以便正确管理我的数据。这次我要确保记下笔记,因为我认为我以前做过!非常感谢你的帮助。