标签:场景 这一 注意 mit ima zh-cn head 3.3 感受
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;} # 不能使用函数和日期对象 }
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(Asynchronous Javascript And XML)翻译成中文就是"异步Javascript和XML"。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)
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>
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)
url(r"^ajax_demo/$", views.ajax_demo), url(r"^ajax_add/$", views.ajax_add),
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
标签:场景 这一 注意 mit ima zh-cn head 3.3 感受
原文地址:https://www.cnblogs.com/believepd/p/9920537.html