首页 > 其他 > 详细

日常笔记

时间:2019-04-30 11:21:48      阅读:105      评论:0      收藏:0      [点我收藏+]

Httpservletrequest也可以用来接收http请求的参数,比如ajax的请求

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 才是用的,要用注解@RequestBody来接json格式的,为什么用requestbody可见url:https://www.cnblogs.com/qiankun-site/p/5774300.html对于application/x-www-form-urlencoded ,则可以用httpservletrequest来接收。亲测是有效,但是如果你前端项目里没有加上对于ajax的发送接口设置了一些初始的配置,我觉得,这个contentType可以不定义,但是你加上我这样的配置,绝对可以的。

 

日常笔记

原文:https://www.cnblogs.com/cherishforchen/p/10794756.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!