HTML5网页通过ajax跨域调用接口获取json数据并解析(一)

2023-11-08

接口使用Idea设计,返回json字符串。HTML5页面使用WebStorm设计,需要导入jquery。

设计接口需要有Gson包。

一、SpringBoot接口

@PostMapping("/getUserListJson")
    public String getUserListJson() {
        List<UserModel> userList = userRepository.getUserList();
        NetResult<List<UserModel>> netResult = new NetResult<>(0, "getUserListJson success", userList);
        String resultStr = new Gson().toJson(netResult);
        return resultStr;
    }
二、HTML5页面代码

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <meta http-equiv="Content-Type" Content="text/html; Charset=utf-8">
    <title></title>
    <!--<script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>-->
    <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>

</head>
<body>
<form action="http://192.168.1.101:8080/getUserInfo" method="post">
    id:<input type="text" name="id"/><br>
    <input type="submit" value="Submit"/>
</form>

<a href="http://192.168.1.101:8080/getUserAllInfo?id=4">查询</a>
<div id="info"></div>
</body>
<script type="text/javascript">
    $(function () {
        $.ajax({
            type: 'post',
            url: 'http://192.168.1.101:8080/getUserListJson',
            async: true,
            jsonp: 'jsoncallback',
            success: function (data) {

//                $('#info').html(data);
                var result = $.parseJSON(data);
                var userList = result.data;

                var tabStr = "<table border='1'>";

                $.each(userList, function (i, user) {
                    tabStr += "<tr><td>" + user.id
                            + "</td><td>" + user.name
                            + "</td><td>" + user.password
                            + "</td><td>" + user.level
                            + "</td></tr>";
                });
                tabStr += "</table>";
                $('#info').html(tabStr);

            },
            error: function () {
                $('#info').html("有问题");
            }
        });

    });
</script>
</html>

三、调用会发现不成功,因为接口没有允许跨域访问。在接口工程中添加一个类即可。

/**
 * 设置文件
 * 允许跨域访问
 * 主要服务于前端对接口的调用
 */
@Configuration
public class CorsConfig {
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1
        corsConfiguration.addAllowedHeader("*"); // 2
        corsConfiguration.addAllowedMethod("*"); // 3
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); // 4
        return new CorsFilter(source);
    }
}

运行结果:



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5网页通过ajax跨域调用接口获取json数据并解析(一) 的相关文章

随机推荐

  • 报错curl: (7) Failed to connect to 127.0.0.1 port xxxx: Connection refused

    pyenv install xxx 报错curl 7 Failed to connect to 127 0 0 1 port xxxx Connection refused的解决方法 问题重现截图 在查看下面的原因和使用解决方法之前 确保自
  • .NET EF Core 使用 DBFrist 连接sql server

    目录 1 创建项目并导导入包 2 使用命令行生成实体类和上下行类 3 修改上下文类 从配置文件 appsettings json 读取数据库连接字符串 4 编辑Program cs文件 5 测试连接是否成功 1 创建一个控制器 2 修改控制
  • SpringBoot AOP使用

    AOP即面向切面编程 其存在的目的就是为了解耦 通过AOP的实现 可以让业务逻辑只关心业务本身 而不用在意其他的事情 无需改动原有代码 实现无侵入增加部分能力 在系统日志处理 系统事务处理 系统安全验证 系统数据验证等多个场景中都有可能使用
  • matlab之导入txt文件并取其中一列数据

    1 我想导入下面这个文件的内容 并且获取这个文件中的两列数据 2 首先确保Matlab当前所在文件夹为txt文件所在文件夹 然后命令行执行 X load 2019 03 21 08 59 07 fitness txt 即将txt数据存入一个
  • 浏览器使用postMessage实现零延时定时器

    原文地址 https dbaron org log 20100309 faster timeouts 作者 David Baron 浏览器零延时定时器 function var timeouts var messageName zero t
  • mpvue踩坑总结编二

    这个mpvue大大安装大家肯定都没问题的 但安装预览的时候 不是用浏览器打开输入 localhost 8080 而是打开微信开发者工具 把项目根目录导入进去 坑一 不支持ElmentUI和Vue router 不支持ElmentUI和诸如类
  • AttGAN: Facial Attribute Editing by Only Changing What You Want

    AttGAN Facial Attribute Editing by Only Changing What You Want paper motivation 与starGANZ几乎同时间发表的另一篇人脸属性多领域迁移的论文 使用一个统一的
  • python安装报错2503_解决SVN安装报错代码2503,2502

    windows8以后的版本安装msi软件 比如nodejs msi Git msi python msi T ortoiseSVN msi 的时候老师出现2503 2502的错误 究其原因还是系统权限的问题 解决步骤 1 按住win x 在
  • spring中datasource配置

    datasource配置有很多种 我介绍的一种是采用c3p0的 它的百科地址是 http baike baidu com view 920062 htm
  • 解压tar包工具UntarUtil(4)

    This method wraps the input stream with the corresponding decompression method param file provides location information
  • mui back 返回刷新页面方法

    2个页面 模拟 1 html
  • 通过智慧的选择保持持续的进步 ——Google全球副总裁李开复谈选择的智慧

    通过智慧的选择保持持续的进步 Google全球副总裁李开复谈选择的智慧 2006 11 21 15 24 57 当今时代和20世纪已经有很大的差别 今天人们可以通过互联网接触到更多的信息 根据这些信息来为自己做更好的选择 这样的环境下 能够
  • dockerfile——构建tomcat镜像

    在前面的例子 Docker Tomcat镜像制作 中 我们从下载镜像 启动容器 在容器中输入命令来运行程序 这些命令都是手工一条条往里输入的 无法重复利用 而且效率很低 所以就需要一 种文件或脚本 我们把想执行的操作以命令的方式写入其中 然
  • 窗口买票java解释_多窗口异步售票java纠错

    这是服务窗口类 模拟四个线程异步运行 public class TicketWindow public static void main String args Ticket ticket new Ticket Thread w1 new
  • qt5.11.1配置OpenCV4.0.1方法

    需要下载的文件 64位win10系统 Qt 5 11 1 Cmake 3 14 0 win64 x64 msi https cmake org download 选择对应版本进行下载及安装 安装过程见附件中的参考博客 OpenCV 4 0
  • 电机调速(PID算法)(程序原理图全套资料)

    要求 设计一个基于改变PWM信号占空比来实现直流电动机转速控制的系统 满足控制指标要求 思维导图如下 最终设计的成果为 测速使用霍尔传感器 然后霍尔传感器感应的是使用高强度的磁铁 淘宝上面有买 电机驱动用现成的L9110模块 显示直接用OL
  • react 16.8 新特性总结(二)掌握useEffect.md

    useEffect是什么 useEffect 是一个专门react hook的一部分内容主要是为函数组件服务 一般情况下我们可以看作componentDidMount componentDidUpdate componentWillUnmo
  • 关于jsp文件浏览器可以打开,eclipse显示404

    首先要检查一下你的Tomcat是不是出问题了 在安装目录下 进入bin目录 找到start bat 双击打开之后 在浏览器输入localhost 8080 回车 如果页面正常 那么接着往下做 据说是eclipse的内置浏览器原因 他用的是你
  • 计算中心和换位子群(golang版本)

    D go20190906 src IGroup gt go build ZD go 0x7FEF9B63C50 ANOMALY meaningless REX prefix used command line arguments 0x7FE
  • HTML5网页通过ajax跨域调用接口获取json数据并解析(一)

    接口使用Idea设计 返回json字符串 HTML5页面使用WebStorm设计 需要导入jquery 设计接口需要有Gson包 一 SpringBoot接口 PostMapping getUserListJson public Strin