前端jquery ajax与后端controller交互

一).get请求

1.1 实体封装

前端:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
    <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
    <!--[if lt IE 9]>-->
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
</head>
<body>
    <form action="##">
        用户名:<input name="username">
        密码: <input name="password">
            <button type="button">提交</button>
    </form>

</body>
<script>

    $('button').on('click',function () {
        let username = $('input:first').val();
        let password = $('input:nth-child(2)').val();
        let data = {
            username:username,
            password:password
        }
        $.ajax({
            url:'/getMethod',
            data: data,
            type:'GET',
            success:function (res) {
                console.log(res)
            }
        })
    })
</script>
</html>

后端:


@Data
public class User {
    private String username;
    private String password;
}




@Controller
public class JqueryTest {

    @GetMapping("/getMethod")
    @ResponseBody
    public String getMethod(User user){
        if(user!=null)
        {
            return "success";
        }
        else {
            return "fail";
        }
    }
}

1.2 用@RequestParam注解接收

   @GetMapping("/getMethod2")
    @ResponseBody
    public String getMethod2(@RequestParam("username") String username,
                             @RequestParam("password") String password){
        if(!(StringUtils.isEmpty(username)&&StringUtils.isEmpty(password))){
            return "success";

        }else {
            return "fail";
        }
    }

二).post请求

2.1实体封装

前端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
    <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
    <!--[if lt IE 9]>-->
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
</head>
<body>
    <form action="##">
        用户名:<input name="username">
        密码: <input name="password">
            <button type="button">提交</button>
    </form>

</body>
<script>

    $('button').on('click',function () {
        let username = $('input:first').val();
        let password = $('input:nth-child(2)').val();
        let data = {
            username:username,
            password:password
        }
        $.ajax({
            url:'/postMethod',
            data: data,
            type:'POST',
            success:function (res) {
                console.log(res)
            }
        })
    })
</script>
</html>

后端

	@PostMapping("/postMethod")
    @ResponseBody
    public String postMethod(User user){
        if(user!=null)
        {
            return "success";
        }
        else {
            return "fail";
        }
    }

2.2 json格式

前端:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
    <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
    <!--[if lt IE 9]>-->
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
</head>
<body>
    <form action="##" >
        用户名:<input name="username">
        密码: <input name="password">
            <button type="button">提交</button>
    </form>

</body>
<script>

    $('button').on('click',function () {
        let username = $('input:first').val();
        let password = $('input:nth-child(2)').val();
        let data = {
            username:username,
            password:password
        }



        $.ajax({
            url:'/postMethod',
            data: JSON.stringify(data),//将对象转成json字符串
            contentType:'json/application;charset=utf-8',
            type:'POST',
            success:function (res) {
                console.log(res)
            }
        })
    })
</script>
</html>

后端:

  @PostMapping("/postMethod")
    @ResponseBody
    public String postMethod(@RequestBody String user){
        //将json字符串转换成json对象
        JSONObject userJson = JSONUtil.parseObj(user);
        if(user!=null)
        {
            return "username:"+userJson.getStr("username")+"\n"
                    +"password:"+userJson.getStr("password");
        }
        else {
            return "fail";
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值