AJAX异步加载

AJAX异步加载

异步加载例子,注释描述

定义

局部刷新技术,不需要整个网页刷新。
AJAX是一种异步的客户端和服务端进行交换数据的方法,表现是不重新加载页面的情况下,后台与服务器进行了数据交互,再部分的更新页面。

jQuery框架ajax使用

html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>  
{% load static %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="{% static 'js/login.js' %}"></script>
<body>
<div class="container">
<h2>登录</h2>
<form method="post" id="login-form">
{% csrf_token %}
<label for="username">用户名:</label>
<input type="text" id="username" name="username" >

<label for="password">密码:</label>
<input type="password" id="password" name="password" >

<input type="submit" value="登录">
</form> </div>
</body>
</html>

Django的templates格式文件。

js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$(document).ready(function() {  
$("#login-form").submit(function(event) {
event.preventDefault(); //阻止事件继续进行,防止浏览器执行事件的默认操作。

var username = $("#username").val();
var password = $("#password").val();

$.ajax({
url: '../login_post_view', // 替换为你的登录视图的URL
type: 'POST',
data: {
'username': username,
'password': password
},
success: function(data) {
var message = data.Success; //从视图返回的json数据
if (username == "" || password == ""){
alert("用户名密码不能为空");
}else{
if (message == "0") {
alert("用户名密码错误");
} else {
alert("登录成功");
window.location.href = "../index_view";
}
}

},
error: function(xhr, status, error) {
// 处理Ajax请求错误
console.log("AJAX请求出错:");
console.log("状态码:" + xhr.status);
console.log("状态消息:" + xhr.statusText);
console.log("错误信息:" + error);
}
});
});
});

后台数据(Django为例)

1
2
3
4
5
6
7
8
9
10
11
12
def login_post_view(request):  
message = {"Success": ""}
username = request.POST.get("username")
password = request.POST.get("password")
# 验证用户名密码正确
try:
my_user = MyUser.objects.get(username=username, password=password) # 单个记录
message["Success"] = "1"
request.session["user_name"] = username
except MyUser.DoesNotExist:
message["Success"] = "0"
return JsonResponse(message)

返回json数据。前端接受Success的值


AJAX异步加载
http://zanderchan666.github.io/2023/10/30/ajax异步加载/
作者
Zander
发布于
2023年10月30日
许可协议