Jquery 在$.ajax请求中传递数据将返回一个空数组。怎么了?
我正在努力解决这个问题 我试图使用$.ajax将元素数据传递给我的php文件,它总是返回空的 这是我的密码:Jquery 在$.ajax请求中传递数据将返回一个空数组。怎么了?,jquery,ajax,Jquery,Ajax,我正在努力解决这个问题 我试图使用$.ajax将元素数据传递给我的php文件,它总是返回空的 这是我的密码: strJson = '{' $.each(this_side.data(), function(i, v) { strJson += i + ":'" + v + "',"; }); strJson += term_id + ":'" + term_id + "',"; strJson += new_page_num + ":'"
strJson = '{'
$.each(this_side.data(), function(i, v) {
strJson += i + ":'" + v + "',";
});
strJson += term_id + ":'" + term_id + "',";
strJson += new_page_num + ":'" + new_page_num + "'";
strJson += '}';
alert(strJson); // this works
$.ajax({
url: 'my url here',
type: 'post',
data: strJson,
success: function(data){
alert(data);
}
});
$\u POST的Outpot是一个空数组。它不起作用了
请告诉我这里缺少什么?由于lordVlad的评论,更新了答案:
strJson = '{'
$.each(this_side.data(), function(i, v) {
strJson += i + ":'" + v + "',";
});
strJson += "'"+ i + "':'" + v + "',";
strJson += new_page_num + ":'" + new_page_num + "'";
strJson += '}';
尝试将数据类型
和“contentType”添加到代码中
$.ajax({
url: 'my url here',
type: 'post',
data : JSON.parse(strJson),
dataType: 'json',
success: function(data){
alert(data);
},
contentType: "application/json; charset=utf-8"
});
此外,您可能需要查看官方文档:由于lordVlad的评论,更新了答案:
strJson = '{'
$.each(this_side.data(), function(i, v) {
strJson += i + ":'" + v + "',";
});
strJson += "'"+ i + "':'" + v + "',";
strJson += new_page_num + ":'" + new_page_num + "'";
strJson += '}';
尝试将数据类型
和“contentType”添加到代码中
$.ajax({
url: 'my url here',
type: 'post',
data : JSON.parse(strJson),
dataType: 'json',
success: function(data){
alert(data);
},
contentType: "application/json; charset=utf-8"
});
此外,您可能需要查看官方文档:尝试以下操作:
$.ajax({
url: 'my url here',
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: { param: strJson },
success: function(data){
alert(data);
}
});
试试这个:
$.ajax({
url: 'my url here',
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: { param: strJson },
success: function(data){
alert(data);
}
});
尝试添加数据类型:“json”
:
$.ajax({
url: 'my url here',
type: 'post',
data: $.parseJSON(strJson),
dataType: "json",
success: function(data){
alert(data);
}
});
并在发送前使用$.parseJSON()
解析strJson。尝试添加数据类型:“json”
:
$.ajax({
url: 'my url here',
type: 'post',
data: $.parseJSON(strJson),
dataType: "json",
success: function(data){
alert(data);
}
});
并在发送之前使用
$.parseJSON()
解析strJson
。不要为dataType
和contentType
操心,jQuery应该自己处理。
this\u side.data()
返回什么?如果它是一个数组,则表示$中的i
变量。每个循环都是一个数字,JSON的格式完全错误。试一试
$.each(this_side.data(), function(i, v) {
strJson += "'" + i + "':'" + v + "',";
});
然后还应该发布一个JSON对象,而不是JSON字符串:
$.ajax({
data : JSON.parse( strJson ),
...
})
当this_side.data()
返回一个对象并且键具有像“-”这样的“特殊”字符时,这一点也要考虑在内
如果this_side.data()
返回一个对象,则以下方法更简单:
$.ajax({
url: 'my url here',
type: 'post',
data: $.extend(
this_side.data(),
{'term_id': term_id, 'new_page_num' : new_page_num }
),
success: function(data){
alert(data);
}
});
不要为数据类型
和内容类型
操心,jQuery应该自己解决这个问题。
this\u side.data()
返回什么?如果它是一个数组,则表示$中的i
变量。每个循环都是一个数字,JSON的格式完全错误。试一试
$.each(this_side.data(), function(i, v) {
strJson += "'" + i + "':'" + v + "',";
});
然后还应该发布一个JSON对象,而不是JSON字符串:
$.ajax({
data : JSON.parse( strJson ),
...
})
当this_side.data()
返回一个对象并且键具有像“-”这样的“特殊”字符时,这一点也要考虑在内
如果this_side.data()
返回一个对象,则以下方法更简单:
$.ajax({
url: 'my url here',
type: 'post',
data: $.extend(
this_side.data(),
{'term_id': term_id, 'new_page_num' : new_page_num }
),
success: function(data){
alert(data);
}
});
在数据参数中,您发送的是json格式的字符串
尝试以以下格式发送数据
strJson='name=Will&address=florida';
让我知道这是否有效 在数据参数中,您正在发送json格式的字符串
尝试以以下格式发送数据
strJson='name=Will&address=florida';
让我知道这是否有效 另外(不是问题),应该完成
,而不是成功
。在控制台日志中发布错误您也应该转义i
:strJson+=“'”“+i+”:“+v+”,”代码>和数据必须是JSON对象,而不是JSON字符串:数据:JSON.parse(strJson),
同样(不是问题),它应该完成
,而不是成功
。在控制台日志中发布错误您也应该转义i
:strJson+=“'”“+i+”:“+v+”,”代码>和数据必须是JSON对象,而不是JSON字符串:数据:JSON.parse(strJson),