为什么我用jquery将表单数据传送到后台时 post方式无法传递数据?而get方式却可以
$.ajax({type:'post',url:'frequency/add.do?check_person=徐',dataType:'json',contentType...
$.ajax({
type:'post',
url:'frequency/add.do?check_person=徐',
dataType:'json',
contentType:'text/html',
data:$('#frequencyForm').serialize(),
success:function(result){
alert(result.msg);
},
beforeSend:function(xhr){
alert(this.data);
}
});
这是我的jquery代码 后台时java的spring mvc
post方式后台接收不到任何参数
换成get方式 把data:去掉 后台却能正常接收参数 这是怎么回事?
还有contentType属性不能去了 去了就报400 bad request 展开
type:'post',
url:'frequency/add.do?check_person=徐',
dataType:'json',
contentType:'text/html',
data:$('#frequencyForm').serialize(),
success:function(result){
alert(result.msg);
},
beforeSend:function(xhr){
alert(this.data);
}
});
这是我的jquery代码 后台时java的spring mvc
post方式后台接收不到任何参数
换成get方式 把data:去掉 后台却能正常接收参数 这是怎么回事?
还有contentType属性不能去了 去了就报400 bad request 展开
2个回答
展开全部
问题不在于参数名有下划线。首先你没有理解post和get的不同。你写的ajax方法里面url:后面更随的是这样的形式:控制器名/方法名?参数名、值。这个传递方式是get方式。post的传递不是跟随url后面用?号加的参数键值对。你用post方式的话url只要控制器名/方法名就可以了
然后data放的是你传递的参数键值对
data: {
userName: $('#userName').val().trim(),
pwd: $('#pwd').val(),
},
你两处很严重的错误。
一个是post方式传递却用get方式的url
第二个是data没有使用键值对的形式,单纯读取某个值
java后台读取post和get的关键字是否相同我不清楚,我用.net开发的时候读取的关键字是不同的。
例如读取get参数值是Request.QueryString["参数名"]
读取post参数值是Request.Form["参数名"]
然后data放的是你传递的参数键值对
data: {
userName: $('#userName').val().trim(),
pwd: $('#pwd').val(),
},
你两处很严重的错误。
一个是post方式传递却用get方式的url
第二个是data没有使用键值对的形式,单纯读取某个值
java后台读取post和get的关键字是否相同我不清楚,我用.net开发的时候读取的关键字是不同的。
例如读取get参数值是Request.QueryString["参数名"]
读取post参数值是Request.Form["参数名"]
追问
问题解决了 你说的不对 但是还是选你了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你浏览器控制台请求的Head信息是????截个图看一下
追问
我知道问题所在了 无论是get 还是 post方式提交 url的参数名不能有下划线 我的url参数有大量的下划线
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询