前端学习之ajax

简介:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
一、什么是json
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。
它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示
数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于
机器解析和生成,并有效地提升网络传输效率。
 
json类型是js类型的子集
json对象到json字符串是序列化过程,json字符串到json对象是反序列化过程
python的json模块,json.dumps(对象),序列化,json.loads(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方法
JSON.parse(): 用于将json字符串转化为javascript对象
console.log(JSON.parse('{"name":"Yuan"}'));
console.log(JSON.parse('{name:"Yuan"}')) ;   // 错误
console.log(JSON.parse('[12,undefined]')) ;   // 错误
 
JSON.stringify(): 用于将javascript对象转化为JSON字符串
console.log(JSON.stringify({'name':"egon"})) ;
 
二、ajax
同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;
异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。
 
AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新;(这一特点给用户的感受是在不知不觉
中完成请求和响应过程)
 
ajax优缺点
优点:
1、ajax异步请求
2、ajax无需刷新整个页面
3、因为服务器响应内容不再是整个页面,而是页面中的局部,所以AJAX性能高;
 
缺点:
1、AJAX并不适合所有场景,很多时候还是要使用同步交互;
2、AJAX虽然提高了用户体验,但无形中向服务器发送的请求次数增多了,导致服务器压力增大;
3、因为AJAX是在浏览器中使用Javascript技术完成的,所以还需要处理浏览器兼容性问题;
 
ajax语法
$.ajax({
                url:"/handle_Ajax/",
                type:"POST",
                data:{username:"Yuan",password:123},
 
                success:function(data){
                    alert(data)
                }
                })
                
data: 当前ajax请求要携带的数据,是一个json的object对象,ajax方法就会默认地把它编码成某种格式
              (urlencoded:?a=1&b=2)发送给服务端;此外,ajax默认以get方式发送请求。
 
contentType:默认值: "application/x-www-form-urlencoded"。发送信息至服务器时内容编码类型。
              用来指明当前请求的数据编码格式;urlencoded:?a=1&b=2;如果想以其他方式提交数据,
              比如contentType:"application/json",即向服务器发送一个json字符串:
                $.ajax("/ajax_get",{
              
                   data:JSON.stringify({
                        a:22,
                        b:33
                    }),
                    contentType:"application/json",
                    type:"POST",
              
                });                          //{a: 22, b: 33}
 
              注意:contentType:"application/json"一旦设定,data必须是json字符串,不能是json对象
1
2
3
4
5
6
7
8
9
10
11
12
13
csrf跨站请求伪造
$.ajaxSetup({
     data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
})
 
django 接受 ajax 传来的数组对象
发送:ajax 通过 POST 方式传来一个数组
接收:django 接受方式 
array = request.POST.getlist(‘key[]’)
其中,key为包含该数组的键值对的键。 
尤其要注意“[]”,少了它将不能接受成功
为什么要加”[]”? 
分析前台发送数据,我们会发现:ajax自动给数组中的数据的键名后添加了”[]”





     本文转自小白的希望 51CTO博客,原文链接:http://blog.51cto.com/haoyonghui/1960538 ,如需转载请自行联系原作者



相关文章
|
21天前
|
前端开发 API UED
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
67 2
|
3天前
|
前端开发 JavaScript 小程序
前端新机遇!为什么我建议学习鸿蒙?
【10月更文挑战第4天】前端新机遇!为什么我建议学习鸿蒙?
22 0
前端新机遇!为什么我建议学习鸿蒙?
|
2月前
|
前端开发 Java 编译器
【前端学java】如何从前端视角快速学习Maven
【8月更文挑战第12天】如何从前端视角快速学习Maven
44 2
【前端学java】如何从前端视角快速学习Maven
|
2月前
|
前端开发 JavaScript API
前端框架Vue------>第二天学习(1)插槽
这篇文章介绍了Vue框架中插槽(slot)的概念和用法,以及如何在组件中使用自定义事件进行父子组件间的通信。
前端框架Vue------>第二天学习(1)插槽
|
2月前
|
JSON 前端开发 JavaScript
前端框架Vue------>第一天学习(3)
这篇文章是关于使用Vue框架进行前端开发的教程,重点介绍了如何使用Axios实现异步通信和表单输入的双向数据绑定。
前端框架Vue------>第一天学习(3)
|
2月前
|
前端开发 JavaScript API
前端框架Vue------>第一天学习(2) v-if
这篇文章介绍了Vue框架中条件渲染的用法,包括`v-if`、`v-else-if`指令的使用,以及列表渲染和事件监听的基本实现。
前端框架Vue------>第一天学习(2) v-if
|
2月前
|
设计模式 JavaScript 前端开发
前端框架Vue------>第一天学习、Vue学习的路径、Vue官网(1)
这篇文章是关于Vue框架的学习指南,涵盖了前端知识体系、MVVM模式、创建第一个Vue程序以及Vue实例的生命周期等基础知识。
前端框架Vue------>第一天学习、Vue学习的路径、Vue官网(1)
|
21天前
|
JSON 前端开发 JavaScript
跨越跨域大山,前端不得不知道的Ajax
该文章介绍了AJAX技术的基本使用方法,包括GET和POST请求的模拟,并探讨了浏览器同源策略及其对跨域请求的影响,同时还提出了JSONP和CORS作为解决跨域问题的方案。
|
2月前
|
前端开发 算法 网络协议
如何学习计算机基础知识,打好前端和网络安全的基础
如何学习计算机基础知识,打好前端和网络安全的基础
40 4
|
2月前
|
前端开发 JavaScript
前端网站学习大全
这篇文章提供了前端网站开发学习的资源大全,涵盖了HTML常用标签和CSS常用样式,以及如何使用`<meta>`标签提供页面元信息和`lang`属性定义内容语言等基础知识。
前端网站学习大全