JSON 与 Ajax初级练习

在使用之前,先了解一下什么是AJAX与JSON

AJAX 被称为是异步 JavaScript 和 XML,是一组用于客户端的相互关联的 Web 开发技术。作用是不影响现有页面显示,从后台获取数据,通俗来说就是不用刷新页面就能拿到数据了

1、导入pom依赖:

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.0</version>
    </dependency>

2、在前端页面导入需要的静态资源 js

<script src="${APP_PATH}/bootstrap/js/jquery-2.1.0.min.js"></script>

3、书写后台接收json请求的代码:

 @RequestMapping("/ajax")
    @ResponseBody
    public Json testAjax(String map){
        System.out.println(map);
        return Json.setJson(map);
    }

注:@RestController 声明的类,所有的方法返回都为 json 字符串形式
package com.wanshi.spring.pojo;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

@Data
public class Json {//自定义返回类包括状态code、报错信息message,返回的数据info
    private String code;
    private String message;
    private Map<String,Object> info;

    public static Json setJson(String map){ //自定义方法,目的是将前端返回的字符串转换成一个map对象集合

        Json json=new Json();
        Map<String, Object> _map = new HashMap<>();
        String[] info = map.split("&");

        int i=0;
        try {
            for (String name:info) {
                _map.put(name.substring(0,name.indexOf("=")),name.substring(name.indexOf("=")+1));
            }
            json.setInfo(_map);
        }catch (Exception e){
            json.setCode("10");
            json.setMessage(e.getMessage());
            i=1;
        }
        if(i==0){
            json.setCode("0");
        }
        return json;
    }

}

4、前端请求方法:

            function a1(){
                alert(1)
                var value = $("#select_from").serialize(); //将表单数据封装为一个字符串
                value=decodeURIComponent(value,true); //解决中文乱码
                 $.ajax({ //ajax请求
                        url:"${APP_PATH}/web/ajax", //请求的地址
                        data:{ "map":value }, //要携带的数据
                        success:function (data){ //接收到的数据放入 data 中
                           console.log(data)
                        }
                 })
            }

form表单:

<form id="select_from">
    <input  value="" type="text" id="account" name="account"/> <span id="_account"></span>
    <input value="" type="password" id="password" name="password"/> <span id="_password"></span>
    <input type="button" value="提交" onclick="a1()"/>
    <span id="Info"></span>
</form>

总结:当点击 ‘提交‘ 按钮后,会执行函数a1,发送ajax请求,请求到后台后,拿到前端发送的json字符串,解析成一个对象,然后以json字符串方式返回这个对象,前端 data 就可以拿到数据,然后可以动态渲染要显示的数据页了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值