导读:本篇文章首席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请求的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~