Loading

Ajax基础操作

【一】Ajax简介

【1】介绍

  • Ajax(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”。
  • 就是使用JavaScript语言与服务器进行异步交互
  • Ajax不是新的编程语言,而是一种使用现有标准的新方法。
  • Ajax最大的优点是重新加载整个页面的情况下与后端服务器交换数据,并且更新局部网页内容,也就是在不知不觉中完成请求与响应的过程

【2】精髓

  • Ajax的精髓在于八字
  • 异步提交,局部刷新

【3】总结发送请求的方式

# 1.浏览器直接输入url回车
GET请求

# 2.点击a标签
GET请求

# 3.form表单
GET/POST请求

# 4.Ajax
GET/POST请求

【二】案例

  • 现有三个输入框,要求在前两个框内输入数字,点击按钮后第三个框得到结果
  • 整个页面不能刷新,也不能把计算的逻辑放在前端

【1】前端页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    {% load static %}
    <script src="{% static 'jQuery.min.js' %}"></script>
    <script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
    <link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
</head>
<body>

<p>
    <input type="text" id="d1">+
    <input type="text" id="d2">=
    <input type="text" id="d3">
</p>
<p><input type="submit" id="btn"></p>

<script>
    $('#btn').on('click', function () {
        $.ajax({
            // 先给目标url 不填默认就是向当前url发送请求
            url: '',
            // 定义请求方法 ,默认不填是get方法
            type: 'post',
            // 定义提交到后端的数据
            data: {'d1': $('#d1').val(), 'd2': $('#d2').val()},
            // 因为是异步提交,所以需要定义回调函数,函数的形参用来接收后端传来的数据
            success: function (sum) {
                $('#d3').val(sum)
            }
        })
    })
</script>
</body>
</html>

【2】后端视图函数

def ajax(request):
    # 因为前端定义了是post请求 所以用POST方法来接收数据
    if request.method == 'POST':
        d1 = request.POST.get('d1')
        d2 = request.POST.get('d2')
        # 因为传来的数据是一个字符串,所以需要转一下数据类型
        d3 = int(d1) + int(d2)
        # 通过HttpResponse将计算的结果传回到前端
        return HttpResponse(d3)
    return render(request, 'ajax.html')
posted @ 2024-03-25 17:29  HuangQiaoqi  阅读(5)  评论(0编辑  收藏  举报