我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Django框架怎么使用ajax的post方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Django框架怎么使用ajax的post方法

这篇文章主要介绍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攻击。。

具体办法是,首先解决表单的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 < cookies.length; i++) {     var cookie = jQuery.trim(cookies[i]);     // Does this cookie string begin with the name we want?     if (cookie.substring(0, name.length + 1) == (name + '=')) {      cookieValue = decodeURIComponent(cookie.substring(name.length + 1));      break;     }    }   }   return cookieValue;  }  if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {   // Only send the token to relative URLs i.e. locally.   xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));  } });

 经过这番折腾,算是可以正常用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')

以上是“Django框架怎么使用ajax的post方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Django框架怎么使用ajax的post方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Django框架怎么使用ajax的post方法

这篇文章主要介绍Django框架怎么使用ajax的post方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图
2023-06-08

jQuery非Ajax的POST请求方法怎么使用

这篇文章主要介绍了jQuery非Ajax的POST请求方法怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jQuery非Ajax的POST请求方法怎么使用文章都会有所收获,下面我们一起来看看吧。一、AJA
2023-07-05

django使用ajax post数据出现403错误怎么办

这篇文章将为大家详细讲解有关django使用ajax post数据出现403错误怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容请看下文。方法一:如果用jQuery来处理ajax的话,Djan
2023-06-08

Django框架之路由怎么使用

这篇文章主要介绍“Django框架之路由怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Django框架之路由怎么使用”文章能帮助大家解决问题。简介路由简单的来说就是根据用户请求的 URL 链
2023-07-02

Django框架中模型怎么使用

这篇文章主要介绍“Django框架中模型怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Django框架中模型怎么使用”文章能帮助大家解决问题。Django 对各种数据库提供了很好的支持,包括
2023-07-02

Python中怎么使用Django框架开发

今天就跟大家聊聊有关Python中怎么使用Django框架开发,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。建立Python Django开发框架,实现表单的有效性检验。可以方便的从
2023-06-17

Python Django框架中表单怎么使用

本篇内容介绍了“Python Django框架中表单怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Django保证表单的正确显示需要
2023-07-02

PHP中的POST方法怎么使用

本文小编为大家详细介绍“PHP中的POST方法怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP中的POST方法怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在编写Web应用程序时,HTTP协
2023-07-05

使用Python的Django框架结合jQuery实现AJAX购物车页面

Django中集成jquery 首先,静态的资源通常放入static文件夹中:static/css/djquery.csssamples/hello.cssjs/jquery-1.7.1.min.jssamples/hello.js其中cs
2022-06-04

swoole框架的使用方法

这篇文章将为大家详细讲解有关swoole框架的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。swoole有两个部分。 一个是PHP扩展,用C开发的,这是核心。 另一个是框架,像yii、TP、Lar
2023-06-14

Python的Django框架中forms表单类的使用方法详解

Form表单的功能自动生成HTML表单元素检查表单数据的合法性如果验证错误,重新显示表单(数据不会重置)数据类型转换(字符类型的数据转换成相应的Python类型)Form相关的对象包括Widget:用来渲染成HTML元素的工具,如:form
2022-06-04

workflow框架使用的方法是什么

Workflow框架的使用方法通常包括以下步骤:确定需要进行流程管理的业务流程:首先需要明确要管理的业务流程,包括流程中的各个步骤、参与者、条件等。设计流程图:根据业务流程设计流程图,明确流程中的每个步骤及其顺序、条件、分支等。配置工作流引
workflow框架使用的方法是什么
2024-03-14

jQuery ajax()方法怎么使用

jQuery的ajax()方法用于向服务器发送HTTP请求。它可以接收一个对象作为参数,该对象用于指定请求的方法、URL、数据、成功回调函数等信息。以下是ajax()方法的使用方法:1. 最简单的用法是仅指定请求的URL和成功回调函数:``
2023-10-12

$.post()方法怎么在jQuery中使用

$.post()方法怎么在jQuery中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。jquery是什么jquery是一个简洁而快速的JavaScript库
2023-06-14

怎么在ajax中使用post方式下载flask文件流

本篇文章给大家分享的是有关怎么在ajax中使用post方式下载flask文件流,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。ajax post下载文件后端返回文件流,flask
2023-06-08

python的Django框架创建项目的方法是什么

这篇文章主要讲解了“python的Django框架创建项目的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python的Django框架创建项目的方法是什么”吧!具体如下:  Dj
2023-06-02

java rpc框架的使用方法是什么

Java中常用的RPC框架有Dubbo、gRPC、Thrift等,它们的使用方法大致相似,一般包括以下步骤:定义接口:首先需要定义接口,包括接口的方法和参数。实现接口:实现定义的接口,处理接口中定义的方法。配置服务提供者:配置服务提供者的信
java rpc框架的使用方法是什么
2024-03-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录