为什么我用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
展开
 我来答
小宝宝小天使
推荐于2017-12-16 · 超过60用户采纳过TA的回答
知道小有建树答主
回答量:78
采纳率:0%
帮助的人:86.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["参数名"]
追问
问题解决了 你说的不对 但是还是选你了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
i_Bugs
2014-11-20 · 超过16用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:22.7万
展开全部
你浏览器控制台请求的Head信息是????截个图看一下
追问
我知道问题所在了 无论是get 还是 post方式提交 url的参数名不能有下划线 我的url参数有大量的下划线
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式