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

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代码

$('html').ajaxSend(function(event, xhr, settings) {  function getCookie(name) {   var cookieValue = null;   if (document.cookie && document.cookie != '') {    var cookies = document.cookie.split(';');    for (var i = 0; i 

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

Django中ajax的使用

 前端的ajax代码如下所示:

$.ajax({ type:'GET', url:'/store/ds_mgmt_wx/ajax_handle', dataType:'html', success:function(data)  {   alert(data);  }, error:function(data) {  alert(data);  }});

登录后复制

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

if act_job == 'ajax_handle':  return HttpResponse('ajax_handle')

登录后复制

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

相关文章:

详解ajax +jtemplate实现动态分页

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

JQuery Ajax动态生成Table表格

以上就是Django框架如何使用ajax的post方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2757680.html

(0)
上一篇 2025年3月8日 07:59:42
下一篇 2025年3月7日 19:11:36

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • ASP.NET与Ajax的实现方式

    ajax 应该不是一项技术,是一种思想而已,跟 asp.net 以及其它 web 开发语言没有什么太大关系,这里只是谈谈 asp.net 中目前使用的 ajax 技术以及其它一些实现 ajax 的优秀框架。感兴趣的朋友一起学习asp.net…

    编程技术 2025年3月8日
    100
  • jquery中的ajax异步上传

    本篇文章给大家介绍jquery中的ajax异步上传,在此需要引入ajaxfileupload.js这个js文件。接下来,有需要的朋友一起学习吧 找了好久终于在网上找到了ajax异步上传文件的方法,不过网上大多数是php的 ,我改为strut…

    编程技术 2025年3月8日
    200
  • jquery中的ajax同步和异步详解

    jquery ajax同步的意思是当js代码加载到当前ajax的时候会把页面里所有的代码停止加载,页面出现了假死状态,当这个ajax执行完毕后才会继续运行其他的代码假死状态解除。而异步的意思是这个ajax代码运行中的时候其他代码一样可以运行…

    编程技术 2025年3月8日
    200
  • Ajax带提示的验证表单实例

    这篇文章主要介绍了ajax带提示的验证表单,可实现对表单输入进行实时提示的功能,非常简单实用,需要的朋友可以参考下 本文实例讲述了Ajax带提示的验证表单。分享给大家供大家参考。具体如下: 这是一个常用的Ajax表单验证程序,实时提示你输入…

    2025年3月8日
    200
  • 正则与回车换行符使用详解

    这次给大家带来正则与回车换行符使用详解,正则与回车换行符使用的注意事项有哪些,下面就是实战案例,一起来看一下。 C#中,读取文本文件内容,里面往往有许多回车换行符(“”),虽然一般不可见,但却实实在在的存在。这时候,使用正则表示式进行匹配,…

    编程技术 2025年3月8日
    200
  • 正则表达式中的B和使用步骤详解

    这次给大家带来正则表达式中的B和使用步骤详解,正则表达式中的B和的注意事项有哪些,下面就是实战案例,一起来看一下。 或许你看了下面这篇博客 你就能够对B和认识加深了 根据查看API可以知道 B和都是边界匹配符 先说说这个单词边界吧!竟然想了…

    2025年3月8日
    200
  • Ajax实现弹出式无刷新城市选择功能代码

    这篇文章主要介绍了ajax实现弹出式无刷新城市选择功能代码,实例分析了ajax弹出窗口及无刷新选择数据项的相关技巧,需要的朋友可以参考下 本文实例讲述了Ajax实现弹出式无刷新城市选择功能。分享给大家供大家参考。具体如下: 这是一款很棒的全…

    2025年3月8日
    200
  • 双层ajax嵌套(可多层)用法实例

    这篇文章主要介绍了双层ajax嵌套(可多层)用法,实例分析了ajax嵌套的相关使用技巧,可实现多层嵌套的功能,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了双层ajax嵌套(可多层)用法。分享给大家供大家参考。具体如下: fun…

    编程技术 2025年3月8日
    200
  • Ajax上传实现根据服务器端返回数据进行js处理的方法

    这篇文章主要介绍了ajax上传实现根据服务器端返回数据进行js处理的方法,实例分析了ajax请求及java处理并返回服务器端数据请求的相关技巧 本文实例讲述了Ajax上传实现根据服务器端返回数据进行js处理的方法。分享给大家供大家参考。具体…

    编程技术 2025年3月8日
    200
  • ajax遍历xml文档的方法

    这篇文章主要介绍了ajax遍历xml文档的方法,实例分析了jsp结合ajax遍历xml文档的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了ajax遍历xml文档的方法。分享给大家供大家参考。具体分析如下: XMLHtt…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论