前后端交互 --- ajax使用

3 篇文章 0 订阅

一.浅谈前后端分离

核心思想

前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。

为什么要前后端分离?

最重要一点就是术业有专攻,前端和后端各自负责各自擅长的领域,做出来的东西必定比通通包揽一起做要好
前端追求的是:页面表现,速度流畅,兼容性,用户体验等等。后端追求的是:三高(高并发,高可用,高性能),安全,存储,业务等等。
这篇文章解释的比较清楚,推荐一看:为什么要前后端分离?

二.样例

后端

@RequestMapping("/login")
@CrossOrigin
@Slf4j
@Controller
public class LoginController {

    @RequestMapping("/index")
    public String index(){
        return "index";
    }

    @ResponseBody
    @RequestMapping("/testAjax")
    public AjaxResult testAjax(){
        return new AjaxResult().ok("hello ajax");
    }

    @ResponseBody
    @RequestMapping("/testAjax1")
    public AjaxResult testAjax1(@RequestParam("args")String args){
        return new AjaxResult().ok(args+"服务端返回");
    }
}

前端

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
    <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}">
    <script th:src="@{/js/jquery.min.js}"></script>
    <script th:src="@{/js/popper.min.js}"></script>
    <script th:src="@{/js/bootstrap.min.js}"></script>
</head>
<body>

<script>
    //以上所有方法全部都可以用ajax()实现
    $.ajax({
        //发送请求地址(默认当前页地址)
        url      : String,
        //请求方式(默认get) 可选:get/post/put(部分)/delete(部分)
        type     : String,
        //延迟毫秒数
        timeout  : Number,
        //发送至服务器的数据
        data     : Object/String,
        //预期服务器返回类型 可选:xml/html/script/json/jsonp/text
        dataType : String,
        //发送前修改XMLHttpRequest对象函数
        //以下this均为本次调用Ajax传递的options参数
        beforeSend : function(XMLHttpRequest){ this; },
        //完成后的回调函数
        complete : function(XMLHttpRequest,textStatus){ this; },
        //调用成功的回调函数  data可能是html/text/..
        success : function(data,textStatus){ this; }
        //请求失败时返回的函数 通常后两个参数只有一个包含信息
        error : function(XMLHttpRequest,textStatus,errorThrown){ this;}
        //是否出发全局Ajax事件
        global: Boolean
    })
</script>

<div>
    <button id="send" class="send" onclick="123"></button>
</div>
<!--前端接收后端结果-->
<script id="123">
    $(function(){
        $('#send').click(function(){
            $.ajax({
                type: "GET",
                url: "http://localhost:8080/login/testAjax",
                //data: {username:$("#username").val(), content:$("#content").val()},
                dataType: "json",
                success: function(data){
                    alert(data["sData"]);
                },
                error:function () {
                    alert("请求失败");
                }
            });
        });
    });
</script>

<div>
    <form>
        <input id="i" name="args" type="text">
        <input type="button" onclick="111">
    </form>
</div>
<!--前端传参给后端,接收后端处理后的结果-->
<script id="111">
    $(function(){
        $('#send').click(function(){
            $.ajax({
                type: "GET",
                url: "http://localhost:8080/login/testAjax1",
                data: {args:$("#i").val()},
                dataType: "json",
                success: function(data){
                    alert(data["sData"]);
                }
            });
        });
    });
</script>
</body>
</html>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AJAX (Asynchronous JavaScript and XML) 是一种用于前后端数据交互的技术。它允许在不刷新整个页面的情况下,通过异步方式向服务器发送请求并获取响应数据。 使用 AJAX 可以实现以下功能: 1. 发送异步请求:通过 JavaScript 创建 XMLHttpRequest 对象,并使用该对象发送 HTTP 请求到服务器。 2. 处理响应数据:一旦服务器返回响应,可以通过回调函数处理返回的数据。常见的数据格式包括 XML、JSON 或纯文本。 3. 更新页面内容:根据服务器返回的数据,可以使用 JavaScript 动态更新页面内容,而不需要刷新整个页面。这样可以提升用户体验并减少网络流量。 以下是一个简单的 AJAX 示例代码: ```javascript // 创建 XMLHttpRequest 对象 var xhr = new XMLHttpRequest(); // 指定请求的方法和 URL xhr.open('GET', 'https://api.example.com/data', true); // 设置回调函数处理响应 xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { // 处理服务器返回的数据 var response = xhr.responseText; console.log(response); // 更新页面内容 document.getElementById('result').innerHTML = response; } }; // 发送请求 xhr.send(); ``` 在上述示例中,我们使用 AJAX 发送了一个 GET 请求到 `https://api.example.com/data`,并设置了一个回调函数来处理服务器返回的数据。在回调函数中,我们将返回的数据打印到控制台,并将其更新到 id 为 `result` 的 HTML 元素中。 通过 AJAX前端可以与后端进行实时的数据交互,从而实现更加动态和响应式的用户界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值