博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ajax的使用
阅读量:5277 次
发布时间:2019-06-14

本文共 2520 字,大约阅读时间需要 8 分钟。

发送请求的方式:

  1.form表单  post/get

    (1) action 提交的地址  method  提交的方式

    (2)input标签要有name属性

    (3)要有type=submit 或 button按钮

  2.地址栏直接输入URL    get

  3.a标签       get

ajax

  1.与服务器进行交互,是js技术,发送请求,传输数据是XML(json)

  2.特点: 异步,局部刷新,数据量少

    异步交互:客户端发送一个请求,无需等待服务器的响应结束,就可以发送第二个请求

  3.使用:

    用Jquery发ajax

    先导入Jquery

    写js代码

$.ajax({    url: '/ajax_test/',   #  提交的地址    type: 'post',		  # 提交的方式    data: {				  #  数据        name: 'xiaobai',        age: 73,        hobby: JSON.stringify(['吃', 'cnb', '画大饼'])    },    success: function (res) {    # 回调函数        $('[name="ii3"]').val(res)    },    error: function (res) {                console.log(res)    }})

    json: 一种数据类型

​     python

    ​ 数据类型: 数字 字符串 布尔值 列表 字典 None

​     序列化:python的数据类型 ——》 json字符串

    ​ json.dumps(python的数据类型)

​     json.dump(python的数据类型, f )

​     反序列化: json字符串 ——》 python的数据类型

    ​ json.loads( json字符串 )

​     json.load( json字符串, f)

​     前端

​     数据类型: 数字 字符串 布尔值 数组 对象 null

    ​ 序列化: JSON.stringify(数据类型) ——》 json字符串

​     反序列化: JSON.parse(json字符串) ——》前端的数据类型

  JsonResponse

from django.http import JsonResponsereturn JsonResponse({'xxx':'xxxx'})   # content_type: application/json'JsonResponse([],safe=False)

  4.ajax上传文件

  注意:processData:false时,编码方式是:enctype="multipart/form-data"    当processData:true时,编码方式是:enctype="application/x-www-form-urlencoded"

  view中:

def upload(request):    if request.is_ajax(): # 判断是否是ajax请求        # 拿到文件        file_obj = request.FILES.get('x1')        # 接收文件        with open(file_obj.name,'wb')as f:            for i in file_obj.chunks():                f.write(i)        return HttpResponse('ok')    return render(request,'upload.html')

  5.ajax通过django的CSRF校验:

  前提条件:保证访问的页面有csrftoken的cookie

    (1)模板中使用csrf_token标签

    (2)给视图加装饰器

from django.views.decorators.csrf import ensure_csrf_cookie  # 确保访问某个视图有csrf_cookie

    方式一:

$.ajax({    url: '/calc/',    type: 'post',    data: {        csrfmiddlewaretoken:$('[name="csrfmiddlewaretoken"]').val() ,        i1: $('[name="i1"]').val(),        i2: $('[name="i2"]').val(),    },    success: function (res) {        $('[name="i3"]').val(res)    }})

    方式二:

$('#b2').click(function () {    $.ajax({        url: '/calc2/',        type: 'post',        headers:{           'X-csrftoken': $('[name="csrfmiddlewaretoken"]').val(),        },         data: {            i1: $('[name="ii1"]').val(),            i2: $('[name="ii2"]').val(),        },        success: function (res) {            $('[name="ii3"]').val(res)        }    })});

  

      

 

 

    

转载于:https://www.cnblogs.com/sypx/p/10387378.html

你可能感兴趣的文章
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>
站立会议第四天
查看>>
如何快速掌握一门技术
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
vagrant 同时设置多个同步目录
查看>>
python接口自动化28-requests-html爬虫框架
查看>>
生成随机数的模板
查看>>
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>
UVa 11059 最大乘积
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
composer 报 zlib_decode(): data error
查看>>