为什么我用jquery将表单数据传送到后台时 post方式无法传递数据?而get方式却可以

$.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

第1个回答  推荐于2017-12-16
问题不在于参数名有下划线。首先你没有理解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["参数名"]追问

问题解决了 你说的不对 但是还是选你了

本回答被提问者和网友采纳
第2个回答  2014-11-20
你浏览器控制台请求的Head信息是????截个图看一下追问

我知道问题所在了 无论是get 还是 post方式提交 url的参数名不能有下划线 我的url参数有大量的下划线

追答

参数有下划线的:
http://www.baidu.com/home/xman/data/superload?type=weather&_req_seqid=0xad0245ad0001675b&asyn=1&t=1416546158035
url有下划线的太多了:
http://www.baidu.com/cache/fpid/chromelib_1_1.js?_=1416546153958

相似回答