最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Django框架如何使用ajax的post方法

来源:动视网 责编:小采 时间:2020-11-27 19:46:45
文档

Django框架如何使用ajax的post方法

Django框架如何使用ajax的post方法:Django是一个开放源代码的Web应用框架,由Python写成,本文给大家介绍Django框架如何使用ajax的post方法,感兴趣的朋友一起来学习学习吧Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是
推荐度:
导读Django框架如何使用ajax的post方法:Django是一个开放源代码的Web应用框架,由Python写成,本文给大家介绍Django框架如何使用ajax的post方法,感兴趣的朋友一起来学习学习吧Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是


Django是一个开放源代码的Web应用框架,由Python写成,本文给大家介绍Django框架如何使用ajax的post方法,感兴趣的朋友一起来学习学习吧

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

今天在尝试调用jQuery的ajax时发现一个问题,就是使用GET方法服务器可以正常返回,但是使用POST方法却不行。后来再测试表单方式的POST的方法也不行。只要POST必报HTTP 403错误!非常奇怪。。

在网上搜了一大堆资料以后原来是因为Django的Cross Site Request Forgery protection机制的问题。这个机制是为了保护不受csrf攻击。什么是crsf攻击,桃林博客中有一段较为浅显的讲解。解决方案Django的官网已经提供了http://docs.djangoproject.com/en/dev/ref/contrib/csrf/,根据说明修改后,ajax可以顺利Post了。

具体办法是,首先解决表单的POST。在settings.py文件中找到 MIDDLEWARE_CLASSES,在其中加入一个中间件:'django.middleware.csrf.CsrfViewMiddleware' ,修改后的代码如下:

Python代码

MIDDLEWARE_CLASSES = ( 
 'django.middleware.common.CommonMiddleware', 
 'django.contrib.sessions.middleware.SessionMiddleware', 
 'django.middleware.csrf.CsrfViewMiddleware', 
 'django.contrib.auth.middleware.AuthenticationMiddleware', 
 'django.contrib.messages.middleware.MessageMiddleware', 
 'django.middleware.csrf.CsrfResponseMiddleware', #加入这个中间件 
)

经过这番修改,可以解决表单方式的POST提交HTTP 403问题了。ajax的Post提交仅这样改还不行。还需要钩上一个每次提交时的cookie处理过程。也就是每次提交的时候,都触发这个过程,在提交的http头上加入csrf token。不过还好,如果你是用jQuery来处理ajax的话,Django直接送了一段解决问题的代码。把它放在一个独立的js文件中,在html页面中都引入即可。注意这个js文件必须在jquery的js文件引入之后,再引入。代码我直接复制过来了,如下:

Js代码

经过这番折腾,算是可以正常用ajax与Django通信了。

Django中ajax的使用

前端的ajax代码如下所示:

后端的相应代码的返回方法如下:

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

详解ajax +jtemplate实现动态分页

Ajax在请求过程中显示进度的简单实现

JQuery Ajax动态生成Table表格

文档

Django框架如何使用ajax的post方法

Django框架如何使用ajax的post方法:Django是一个开放源代码的Web应用框架,由Python写成,本文给大家介绍Django框架如何使用ajax的post方法,感兴趣的朋友一起来学习学习吧Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top