django 403 错误:CSRF token missing or incorrect

最近觉得SAE不错,就开始试试看,从Django开始.把原来MVC3的一个小项目转过来,记录下碰到的问题.

用的Django版本为1.4.

我比较喜欢用jquery的ajax来做表单提交(我觉得ajax比form方便...每个人喜好不同吧~)

ajax提交一下,结果出事了....403错误,CSRF,还好在MVC里面也有这货,对这名字不陌生了~但是MVC里面不报错.怎么Django就报错了..貌似Django更看重安全问题么~

说下解决方法,google了一大圈,说什么添加MIDDLEWARE_CLASSES...全是扯淡.

最终解决方法如下:

MIDDLEWARE_CLASSES根本不需要动,Django默认就行.

$(document).ready中加入以下js代码(PS:必须使用jquery,如果不想用,请自行转换成js代码):

 1 jQuery(document).ajaxSend(function(event, xhr, settings) {
 2                 function getCookie(name) {
 3                     var cookieValue = null;
 4                     if (document.cookie && document.cookie != '') {
 5                         var cookies = document.cookie.split(';');
 6                         for (var i = 0; i < cookies.length; i++) {
 7                             var cookie = jQuery.trim(cookies[i]);
 8                             // Does this cookie string begin with the name we want?
 9                             if (cookie.substring(0, name.length + 1) == (name + '=')) {
10                                 cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
11                                 break;
12                             }
13                         }
14                     }
15                     return cookieValue;
16                 }
17                 function sameOrigin(url) {
18                     // url could be relative or scheme relative or absolute
19                     var host = document.location.host; // host + port
20                     var protocol = document.location.protocol;
21                     var sr_origin = '//' + host;
22                     var origin = protocol + sr_origin;
23                     // Allow absolute or scheme relative URLs to same origin
24                     return (url == origin || url.slice(0, origin.length + 1) == origin + '/') ||
25                         (url == sr_origin || url.slice(0, sr_origin.length + 1) == sr_origin + '/') ||
26                         // or any other URL that isn't scheme relative or absolute i.e relative.
27                         !(/^(\/\/|http:|https:).*/.test(url));
28                 }
29                 function safeMethod(method) {
30                     return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
31                 }
32             
33                 if (!safeMethod(settings.type) && sameOrigin(settings.url)) {
34                     xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
35                 }
36             });

然后在templates任意位置加入{% csrf_token %}

接下来修改view

方法如下:

from django.core.context_processors import csrf
from django.shortcuts import render_to_response, get_object_or_404def index(request):c = {}c.update(csrf(request))return render_to_response('index.html',c)

现在提交就木有问题啦~

希望在这里碰壁的朋友越来越少~

转载于:https://www.cnblogs.com/alipig/archive/2013/02/02/2889761.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode MySQL 574. 当选者

文章目录1. 题目2. 解题1. 题目 表: Candidate -------------- | id | Name | -------------- | 1 | A | | 2 | B | | 3 | C | | 4 | D | | 5 | E | -------------- 表: Vote ------------------- | id | CandidateId | ---…

java 捆绑_java – 如何在jar文件中捆绑图像

在这里似乎有两个问题&#xff1a;>如何让NetBeans在构建项目时将jar包含在生成的jar中&#xff1f;>如何从jar中访问映像文件&#xff1f;此应用程序适用于NetBeans 6.8并解决了两个方面的问题.假设您有一个基于ant的Java应用程序项目.这是项目的“文件”视图JP images …

Win8下右键“发送到”没有蓝牙选项的解决办法

1.打开C:\Windows\System32&#xff0c;搜索fsquirt.exe&#xff0c;这时会得到多个搜索结果&#xff0c;选择路径是C:\Windows\System32的那个&#xff0c;其他的也可以&#xff0c;只不过是英文罢了。 2.在fsquirt.exe上右键-》创建快捷方式&#xff0c;因为无法在当前位置创…

LeetCode MySQL 534. 游戏玩法分析 III

文章目录1. 题目2. 解题1. 题目 Table: Activity ----------------------- | Column Name | Type | ----------------------- | player_id | int | | device_id | int | | event_date | date | | games_played | int | ----------------------- &…

java 批量入库oracle_java操作Oracle数据库——ARRAY、TABLE类型批量入库

首先是我的数据库表(PLSQL操作)create table TEST_TABLE(yid NUMBER,ytel VARCHAR2(50),yanumber VARCHAR2(50));这里记录两种方式&#xff1a;不管哪种方式、一定要记得导入orai18n.jar否则一遇到字符串就乱码、添加不到数据第一种&#xff1a;在数据库中建立相应的j…

bzoj 1036 树的统计Count

题意&#xff1a;... 解法&#xff1a;树链剖分&#xff0c;对点进行重编号&#xff0c;这样的话线段树中点的信息就是树中点的信息。。。别的很常规。。。 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 #define N 300105 #define lson l,m…

LeetCode 1500. Design a File Sharing System(哈希map+优先队列)

文章目录1. 题目2. 解题1. 题目 We will use a file-sharing system to share a very large file which consists of m small chunks with IDs from 1 to m. When users join the system, the system should assign a unique ID to them. The unique ID should be used once …

mupdf java_mupdf库学习

http://macleo.iteye.com/blog/1544948Java代码freetye-config --cflags2.C语言的用处其实还是很大的....C也一样&#xff0c;不经意处C语言还在发挥着巨大的作用3.踏破铁鞋无觅处啊http://zhiweiofli.iteye.com/blog/9050694.Bitmap旋转http://blog.sina.com.cn/s/blog_625def…

Centos或者Redhet开通telnet

我参考了两篇文章&#xff1a; 1、51cto的这篇最全&#xff1a; http://blog.chinaunix.net/uid-21134884-id-3015272.html 2、本园子里面的&#xff1a; http://www.cnblogs.com/xlmeng1988/archive/2012/04/24/telnet-server.html转载于:https://www.cnblogs.com/diyunpeng/a…

LeetCode 425. 单词方块(Trie树+DFS)

文章目录1. 题目2. 解题1. 题目 给定一个单词集合 &#xff08;没有重复&#xff09;&#xff0c;找出其中所有的 单词方块 。 一个单词序列形成了一个有效的单词方块的意思是指从第 k 行和第 k 列 (0 ≤ k < max(行数, 列数)) 来看都是相同的字符串。 例如&#xff0c;单…

python numpy pandas 书 全_用Python做数据分析,Numpy,Pandas,matp

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼用Python做数据分析&#xff0c;Numpy&#xff0c;Pandas&#xff0c;matplotlib是怎么也绕不开的三个包&#xff0c;我最开始学习pandas是看的《利用Python进行数据分析》&#xff0c;看了好几遍&#xff0c;不是从头到尾看了好几…

打开约束指令,让编码更规范

如果你使用perl5.12 或更高的版本&#xff0c;可以显示的指定当前Perl版本号来自动打开约束指令。 use 5.012; #自动启用use strict 指令 之前的版本通过添加下边这句话 use strict; 通过启用约束指令&#xff0c;编程时常见的错误很容易暴露出来。 而启用warnings指令的话&…

LeetCode 642. 设计搜索自动补全系统(Trie树)

文章目录1. 题目2. 解题1. 题目 为搜索引擎设计一个搜索自动补全系统。 用户会输入一条语句&#xff08;最少包含一个字母&#xff0c;以特殊字符 ‘#’ 结尾&#xff09;。 除 ‘#’ 以外用户输入的每个字符&#xff0c;返回历史中热度前三并以当前输入部分为前缀的句子。下面…

python 动漫卡通人物图片大全_用Python把人物头像动漫化,不同的表情给你不同的惊喜...

前言最近上网冲浪的时候看到了一个有趣的东西&#xff0c;叫做『人物动漫化』&#xff0c;作为老大的粉丝&#xff0c;怎么可能放过这个机会&#xff0c;让我们先看看效果图&#xff1a;这就是这次要用Python搞的事情啦&#xff0c;我们会利用百度AI的人物动漫化技术&#xff0…

linux 命令学习记录

文件操作 chown -R user file 修改文件所有者chmod -R 777 file 修改文件权限wrxmkdir -p dir1/dir2/dir3 创建目录rmdir -p dir1/dir2/dir3 删除目录&#xff08;目录为空&#xff09;cp source target 复制source到targetcp -s source target 创建target 软链接到source &…

“后见之明”是冰冷刻薄的讥讽;这是一种病,得治。

我最讨厌的一类人就是&#xff0c;“嗯&#xff0c;我早就说过吧”、“你看&#xff0c;我没说错吧”。这不是高明&#xff0c;而是无耻无德无道无义。你早知 道为什么不说&#xff1f;你早发现为什么不阻止&#xff1f;你早有能耐为什么到现在才和我扯淡&#xff1f;“后见之明…

LeetCode MySQL 1264. 页面推荐(union)

文章目录1. 题目2. 解题1. 题目 朋友关系列表&#xff1a; Friendship ------------------------ | Column Name | Type | ------------------------ | user1_id | int | | user2_id | int | ------------------------ 这张表的主键是 (user1_id, use…

java从1开始计时用线程_java – Python – 线程,计时或函数使用?

我正在制定一个关于如何解决这个问题的想法.请帮忙.我的项目包含一个N x N网格,其中包含一系列块,这些块应该在随机方向和随机速度内移动(每隔0.1秒,块的位置用速度更新).我有三个“特殊”块,预计会有各自的移动功能.我将有其他块(其中许多)除了更新它们的位置之外什么都不做,并…

LeetCode MySQL 1070. 产品销售分析 III(group by 陷阱)

文章目录1. 题目2. 解题1. 题目 销售表 Sales&#xff1a; -------------------- | Column Name | Type | -------------------- | sale_id | int | | product_id | int | | year | int | | quantity | int | | price | int | -------------…

java中excel文件导入数据库中_〖JAVE经验〗java中Excel导入数据库里

1 从Excel文件读取数据表 Java Excel API既可以从本地文件系统的一个文件(.xls)&#xff0c;也可以从输入流中读取Excel数据表。读取Excel数据表的第一步是创建Workbook(术语&#xff1a;工作薄)&#xff0c;下面的代码片段举例说明了应该如何操作&#xff1a;(完整代码见Excel…