美文网首页Java Web知识Java Web之ajax传值
解决action中取不到ajax提交的参数值

解决action中取不到ajax提交的参数值

作者: 想酷却酷不起来 | 来源:发表于2017-11-12 23:33 被阅读17次

今天在写action的时候用request.getParameter()这个方法,死活拿不到前台用$.ajax()post过来的数据,取到的参数值都是null,最让我无解的是我去追踪network,请求200.而且我还可以返回来数据。network如图


image.png

ajax提交参数如下:

$.ajax({
    url: "http://127.0.0.1:8080/MyFMS/account",
    ContentType: "application/json",
    data: data.field, //请求的附加参数,用json对象
    method: 'POST',
    success: function (res) {
        console.log(res);
    }
});

我检查了好几遍,感觉没什么问题,然后在网上搜索了很久,终于找到了病因。问题出在ContentType这里,乍一看,我要返回json数据,没毛病啊,但事实上,ContentType这个字段表示你想要你提交的参数以什么格式传输,当值为"application/json"的时候,我们其实传输过去的是json形式的字符串,所以服务器端是无法通过request.getParameter()来获取值的,所以解决办法是将此字段改成“application/x-www-form-urlencoded;”。那么这个值表示什么呢?这个值即表示参数值以key-value形式传输,所以服务器端可以通过requests.getParameter()来获得参数值。事实上,我们用form表单提交,其实ContentType默认就是这个值。
所以正确的ajax参数设置应该为:

$.ajax({
    url: "http://127.0.0.1:8080/MyFMS/account",
    ContentType: "application/x-www-form-urlencoded", //或者不设,默认就是这个值
    dataType:"json",  
    data: data.field, //请求的附加参数,用json对象
    method: 'POST',
    success: function (res) {
        console.log(res);
    }
});

dataType这个字段与contentType这个字段表示的意思刚好相反,表示response的内容以什么样的格式返回,可以理解为设置响应头的contentType这个字段。
结论:contentType一般不用设置,大多数时候,默认值可以满足我们的要求,想要返回json数据的时候,我们设置dataType为“json”就可以了。

相关文章

  • 解决action中取不到ajax提交的参数值

    今天在写action的时候用request.getParameter()这个方法,死活拿不到前台用$.ajax()...

  • 1.4 ajax流程-open方法和表单

    ajax中的open方法类似form:表单:数据的提交action: 数据提交的地址,默认是当前页面method:...

  • 21天习惯养成打卡-day3

    遇到的问题 ajax提交获取不到file 表单提交自动刷新页面,使用iframe劫取返回页面,具有跨域请求问题 监...

  • 3-初识Ajax

    在ajax中,form表单就没有必要写action了采用ajax表单元素也没有必要有name属性提交按钮也不一定是...

  • Jmeter设置随机动态参数

    Jmeter中通过${}形式来取参数值 当取值为变量,${变量名} 当取值为函数,${_函数名(参数1,参数2,参...

  • 动态Web编程

    一、AJAX异步提交 异步提交AJAX = Asynchronous JavaScript and XML(异步的...

  • vuex的简单应用03---action

    一、action中提交另一个action 二、action中提交另一个action-----传参数 三、actio...

  • ajax的运用

    交互 form 提交: ajax: jquery的ajax: ajax做交互

  • HTML表单

    form表单 action:提交地址 method: 提交方法 target:在何处打开action 使用form...

  • day22 Html

    表单标签 1、可以提交表单中收集的信息action属性:设置提交信息的位置method属性:提交方式 - post...

网友评论

    本文标题:解决action中取不到ajax提交的参数值

    本文链接:https://www.haomeiwen.com/subject/hpfamxtx.html