AJAX 操作

前言:JSON使用JS语法来描述数据对象,JSON独立于语言和平台

json的js语法,json.stringfy()把其他数据格式转换为json字符串,json.parse()把json格式字符串转换为原来数据格式。AJAX

合格的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;} // 不能使用函数和日期对象
}

AJAX:翻译成中文就是异步的js和XML,它不是新的编程语言,是一种使用现有标准的新方法

最大优点就是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分,用户感受不到请求和相应,

同步交互:一个请求有一个响应后再发第二个请求

异步交互:不需要响应,就可以直接发请求

 

常用格式:

 $('#b1').on("click",function(){

  $.ajax({

  url:"/ajax_add/",

  type:'GET' , 提交方式

  data:{"i1" : $("#i1").val() , 'i2' : $(‘#i2’).val()   },   要发送给后台的数据

  success: function(data) {                 成功得到响应时从后台得到的数据

  $('#i3').val(data);               

}

})

})

后台回复:

return  JsonResponese(ret)

 

常见的应用场景就是搜索引擎根据用户输入的关键字,自动给予提示

还有就是注册时的查重

 

AJAX的优缺点:

1.异步发送请求

2 无须刷新整个页面

3 刷新部分内容,性能高

缺点;后台压力大,请求可能太多

 

data 参数中的键值对,如果值不是字符串,需要转换成json格式字符串

 

AJAX请求设置csrf_token

方式一:

通过隐藏的input标签中的值,放在data中发送。

"csrfmiddlewaretoken": $("[name = 'csrfmiddlewaretoken']").val()

方式二:

通过获取返回的cookie中的字符串,放置在请求头中发送

方式三:

可以使用$.ajaxSetup()方法为ajax请求统一设置。

 

AJAX上传文件 

    $("#b1").click(function () {
// 先生成一个表单对象
var formData = new FormData();
// 向form表单对象添加键值对数据
formData.append("f1", $("#i1")[0].files[0]);
formData.append("name", "张曌");
$.ajax({
url: "/upload/",
type: "POST",
processData: false, // 告诉jQuery不要去处理发送的数据
contentType: false, // 告诉jQuery不要去设置Content-Type请求头
data: formData,
success:function (data) {
console.log(data)
}
})
});

django 内置的序列化 serializers:

def books_json(request):

  book_list=models.Book.objects.all()[0:10]

  from django.core import serializers

  ret=serializers.serialize('json',book_list)

  return HttpResponse(ret)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 












































posted @ 2018-06-27 14:43  赵伟航  阅读(236)  评论(0编辑  收藏  举报