AJAX对于JAVA接收HttpServletRequest和json字符串两种方式的传递写法
1、json字符串的接收形式

  在JAVA项目开发中,接口的接收参数有的是以json字符串 形式接收的,后台写法如下:

public ObjectMapper jsonTranster = new ObjectMapper();
@CrossOrigin
    @RequestMapping(value="/add" ,method=RequestMethod.POST)
    public Object addZjLy(@RequestBody String po){
    FpzjLyb sq;
        try {
            sq = jsonTranster.readValue(po, FpzjLyb.class);
        } catch (IOException e) {
            return getResultMap(3);
        }
       //此处省略
    }

  对于这种的接收,前端ajax的写法如下:

var zzData = {
        id:1
    };
    zzData = JSON.stringify(zzData); //必写
    $.ajax({
        url: interUrl + "/fpzjZzsq/add",
        type: "POST", //必写(GET请求就写GET)
        dataType: "json", //必写
        contentType: "application/json", //必写
        data: zzData, 
        success: function (data) {
           //此处省略
        },
        error: function (data) {
            console.log("")
        }

    })
2、HttpServletRequest的接收形式

  有的是以HttpServletRequest 形式接收的,后台写法如下:

    @RequestMapping(value="/login",method=RequestMethod.POST)
    @ResponseBody
    public Object loginForm(HttpServletRequest request) {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //以下省略
    }

  对于这种的接收,前端ajax的写法如下:

var qData = {
        username:lingdada,
        password:121212
    };
    $.ajax({
        type: "POST",
        url:"/fpzj/facade",
        contentType: "application/x-www-form-urlencoded",
        data: qData,
        success: function (data) {
           //此处省略
        },
        error: function (data) {
            console.log("")
        }
    });

  对于上边的注意地方是,contentType这个绝对不能写成那个application/json,因为这个是对json 才是用的,对于application/x-www-form-urlencoded ,亲测是有效,但是如果你前端项目里没有加上对于ajax的发送接口设置了一些初始的配置,我觉得,这个contentType可以不定义,但是你加上我这样的配置,绝对可以的。
对于x-www-form-urlencoded 的用法,我找了一篇文章,简单介绍了下它与json 的用法区别
选application/x-www-form-urlencoded还是application/json?

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 3 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐