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

发布网友

我来回答

1个回答

热心网友

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

ajax发送请求的步骤

(1)、创建请求对象

??????????newXMLHttpRequest()????(要用变量接收才可以继续进行)

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

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

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

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

(3)、发送请求

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

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

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

??????????readyState??获取请求状态

????????????????请求的五种状态:

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

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

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

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

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

????????????status??响应状态码

??????????????????????200????ok?成功

??????????????????????404????notfound??找不到对应的资源

??????????????????????403????forbidden??禁止?无权访问

??????????????????????304????notmodified??未修改

??????????????????????一般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',//thislineisvsrf

'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,之前要引入fromdjango.views.decorators.csrfimportcsrf_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

metacharset="utf-8"/

titleajaxtest/title

scripttype="text/javascript"src=""/script

scripttype="text/javascript"

jQuery(function($){

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

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

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

});

});

/script

styletype="text/css"/style

/head

body

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

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

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

divid="out"/div

/body

/html

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

/opt/django/webproject/jobs

处理函数:

defajax_deal(request):

returnHttpResponse("hello")

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com