分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

Ajax

发布时间:2023-09-06 02:21责任编辑:彭小芳关键词:Ajax

一、准备知识

什么是json?

JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于ECMAScript(w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

合格的json对象:

["one", "two", "three"]{"one": 1, "two": 2, "three": 3}{"names": ["张三", "李四"] }[{ "name": "张三"}, {"name": "李四"}]

不合格的json对象:

{ name: "张三", ‘age‘: 32 } ?# 属性名必须使用双引号[32, 64, 128, 0xFFF] ?# 不能使用十六进制值{ "name": "张三", "age": undefined } ?# 不能使用undefined{ "name": "张三", ?"birthday": new Date(‘Fri, 26 Aug 2011 07:13:10 GMT‘), ?"getName": ?function() {return this.name;} ?# 不能使用函数和日期对象}

stringify与parse方法

JavaScript中关于JSON对象和字符串转换的两个方法:

JSON.parse():用于将一个 JSON 字符串转换为 JavaScript 对象

JSON.parse(‘{"name":"pd"}‘);JSON.parse(‘{name:"pd"}‘); ?# 错误JSON.parse(‘[18,undefined]‘); ?# 错误

JSON.stringify():用于将 JavaScript 值转换为 JSON 字符串

JSON.stringify({"name":"pd"})

二、Ajax简介

AJAX(Asynchronous Javascript And XML)翻译成中文就是"异步Javascript和XML"。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)

AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新;(这一特点给用户的感受就是在不知不觉中完成了请求和响应过程)

场景:

优点:

  • AJAX使用Javascript技术向服务器发送异步请求
  • AJAX无须刷新整个页面
  • 因为服务器响应内容不再是整个页面,而是页面中的部分内容,所以AJAX性能高

jQuery实现Ajax示例:

<!DOCTYPE html><html lang="zh-cn"><head> ???<meta charset="UTF-8"> ???<meta http-equiv="X-UA-Compatible" content="IE=edge"> ???<meta name="viewport" content="width=device-width, initial-scale=1"> ???<title>ajax_demo</title></head><body><input type="text" id="i1">+<input type="text" id="i2">=<input type="text" id="i3"><button type="submit" id="btn">提交</button><script type="text/javascript" src="/static/jquery-3.3.1.min.js"></script><script> ???$("#btn").on("click", function () { ???????var i1 = $("#i1").val(); ???????var i2 = $("#i2").val(); ???????$.ajax({ ???????????url:"/ajax_add/", ???????????type: "GET", ???????????data: {"i1": i1, "i2": i2}, ???????????success:function (ret) { ???????????????$("#i3").val(ret) ???????????} ???????}) ???})</script></body></html>
ajax_demo.html
def ajax_demo(request): ???return render(request, "ajax_demo.html")def ajax_add(request): ???i1 = request.GET.get("i1") ???i2 = request.GET.get("i2") ???ret = int(i1) + int(i2) ???return HttpResponse(ret)
views.py
url(r"^ajax_demo/$", views.ajax_demo),url(r"^ajax_add/$", views.ajax_add),
urls.py

三、jQuery实现的Ajax

data参数中的键值对,如果值不为字符串,则需要将其装换成字符串类型;如:"hehe": JSON.stringify([1, 2, 3])

<script> ???$("").click(function () { ???????$.ajax({ ???????????url: "/test/", ???????????type: "POST", ???????????data: {username: "pd", password: 123}, ???????????success: function (data) { ???????????????alert(data) ???????????}, ???????????// ---------- error ---------- ???????????error: function (jqXHR, textStatus, err) { ???????????????// jqXHR: jQuery增强的xhr ???????????????// textStatus: 请求完成状态 ???????????????// err: 底层通过throw抛出的异常对象,值与错误类型有关 ???????????????console.log(arguments); ???????????}, ???????????// ---------- complete ---------- ???????????complete: function (jqXHR, textStatus) { ???????????????// jqXHR: jQuery增强的xhr ???????????????// textStatus: 请求完成状态 success | error ???????????????console.log(‘statusCode: %d, statusText: %s‘, jqXHR.status, jqXHR.statusText); ???????????????console.log(‘textStatus: %s‘, textStatus); ???????????}, ???????????// ---------- statusCode ---------- ???????????statusCode: { ???????????????‘403‘: function (jqXHR, textStatus, err) { ???????????????????console.log(arguments); ?//注意:后端模拟errror方式:HttpResponse.status_code=500 ???????????????}, ???????????????‘400‘: function (jqXHR, textStatus, err) { ???????????????????console.log(arguments); ???????????????} ???????????} ???????}) ???})</script>

1

Ajax

原文地址:https://www.cnblogs.com/believepd/p/9920537.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved