首页>>后端>>Python->django怎么发送ajax请求(2023年最新整理)

django怎么发送ajax请求(2023年最新整理)

时间:2023-12-13 本站 点击:0

导读:本篇文章首席CTO笔记来给大家介绍有关django怎么发送ajax请求的相关内容,希望对大家有所帮助,一起来看看吧。

ajax 发送请求的步骤

(1)、创建请求对象

                    new XMLHttpRequest()        (要用变量接收才可以继续进行)

(2)、设置请求方式和请求路径:

                    接收请求对象的变量名打点调用 open :

                                get  请求:直接将路径和要带过去的参数拼接到一起用问号链接  参数用 键=值 的方式书写用 连接

                                post请求:设置请求路径和请求方式

(3)、发送请求

                    get 请求:创建的请求对象名直接打点调用 send()

                    post 请求:设置请求头  setRequestHeader()   并设置以什么方式传递参数

(4)、监听 onreadystatechange 事件,获取请求状态码和响应码状态

                    readyState   获取请求状态

                                请求的五种状态:

                                            0        (初始化)还没有调用send() 方法

                                           1       (载入) 已调用 send()  方法,正在发送请求

                                            2     (载入完成)send()方法执行完毕已经收到全部相应内容

                                            3    (交互)正在解析响应内容

                                            4    (完成)相应内容解析完毕  可以在客户端调用了

                        status    响应状态码

                                            200        ok  成功

                                            404        not found   找不到对应的资源

                                            403        forbidden    禁止  无权访问

                                            304        not modified    未修改

                                            一般5开头都是服务器错误

                                            一般4开头都是前端的错误

                    responseText    获取相应的数据

                                                            

如何在Django使用ajax的POST

post方式不同于get方式可以被django直接得到,因为django为post加入了csrf保护, 详细的文档地址

注释:在最新版本中,在setting.py里'django.middleware.csrf.CsrfViewMiddleware',默认是使用中的,如果没有请自行添加,并且确保此引用在其他所有viewware前面

MIDDLEWARE_CLASSES = (

'django.contrib.sessions.middleware.SessionMiddleware',

'django.middleware.common.CommonMiddleware',

'django.middleware.csrf.CsrfViewMiddleware',//this line is vsrf

'django.contrib.auth.middleware.AuthenticationMiddleware',

'django_cas.middleware.CASMiddleware',

'django.contrib.auth.middleware.SessionAuthenticationMiddleware',

'django.contrib.messages.middleware.MessageMiddleware',

'django.middleware.clickjacking.XFrameOptionsMiddleware',

)

如果想避过csrf检测这一层直接使用post的话,有几种方法:

1 需要在views.py里要出发post请求的函数前加入@csrf_exempt ,之前要引入from django.views.decorators.csrf import csrf_exempt

2 在 settings.py 中 MIDDLEWARE_CLASSES 中 注释掉'django.middleware.csrf.CsrfViewMiddleware'

说下正确使用csrf的方法 :

对于ajax.post方法,需要在ajax方法触发前加入一段js,这段我理解是用来生成不同的token,但是很好奇如果禁掉了co

Django 怎样传数据给HTML页面的ajax

Django传数据给HTML页面的ajax的方法是通过load方法传入的。

举例:ajax.html

html

head

meta charset="utf-8" /

titleajax test/title

script type="text/javascript" src=""/script

script type="text/javascript"

jQuery(function($){

$('button').click(function(){

$name = $(this).attr('name');

$('#out').empty().load('/ajax_deal/',{ name : $name });

});

});

/script

style type="text/css"/style

/head

body

button id="btn-1" name="1"1/button

button id="btn-2" name="2"2/button

button id="btn-3" name="3"3/button

div id="out"/div

/body

/html

设置下路由:url(r'^ajax_deal/$','jobs.views.ajax_deal'),创建名为jobs的app

/opt/django/webproject/jobs

处理函数:

def ajax_deal(request):

return HttpResponse("hello")

结语:以上就是首席CTO笔记为大家整理的关于django怎么发送ajax请求的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/31025.html