加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Django KindEditor解决上传图片时提示csrf问题

发布时间:2020-12-15 17:15:26 所属栏目:大数据 来源:网络整理
导读:Django KindEditor解决上传图片时提示csrf问题 解决办法: ? ? 1.页面添加以下代码: input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}"/ ? ? 2.在KindEditor初始化添加以下参数: function initKindEditor() { ? ? ? ? ? ? var kind =

Django KindEditor解决上传图片时提示csrf问题


解决办法:


? ? 1.页面添加以下代码:


<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}"/>

? ? 2.在KindEditor初始化添加以下参数:


function initKindEditor() {

? ? ? ? ? ? var kind = KindEditor.create('#content',{

? ? ? ? ? ? ? ? width: '100%',// 文本框宽度(可以百分比或像素)

? ? ? ? ? ? ? ? height: '300px',

? ? ? ? ? ? ? ? uploadJson: '/admin/product/upload_image.html',

? ? ? ? ? ? ? ? afterBlur: function () {

? ? ? ? ? ? ? ? ? ? this.sync();

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? allowPreviewEmoticons: true,

? ? ? ? ? ? ? ? allowImageUpload: true,

? ? ? ? ? ? ? ? extraFileUploadParams: {

? ? ? ? ? ? ? ? ? ? 'csrfmiddlewaretoken': '{{ csrf_token }}'

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? items: [

? ? ? ? ? ? ? ? ? ? 'source','|','undo','redo','preview','template','code','cut','copy','paste',

? ? ? ? ? ? ? ? ? ? 'plainpaste','wordpaste','justifyleft','justifycenter','justifyright',

? ? ? ? ? ? ? ? ? ? 'justifyfull','insertorderedlist','insertunorderedlist','indent','outdent','subscript',

? ? ? ? ? ? ? ? ? ? 'superscript','clearhtml','quickformat','selectall','fullscreen','/',

? ? ? ? ? ? ? ? ? ? 'formatblock','fontname','fontsize','forecolor','hilitecolor','bold',

? ? ? ? ? ? ? ? ? ? 'italic','underline','strikethrough','lineheight','removeformat','image','multiimage',

? ? ? ? ? ? ? ? ? ? 'flash','media','insertfile','table','hr','emoticons','baidumap','pagebreak',

? ? ? ? ? ? ? ? ? ? 'anchor','link','unlink',

? ? ? ? ? ? ? ? ]

? ? ? ? ? ? });

? ? ? ? }

? ? 3. 直接简单的方法


$.ajaxSetup({

? ? data: {csrfmiddlewaretoken: '{{ csrf_token }}' },

});

? ? 4.最笨的方法,添加以下js文件代码。


jQuery(document).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;

? ? }

? ? function sameOrigin(url) {

? ? ? ? // url could be relative or scheme relative or absolute

? ? ? ? var host = document.location.host; // host + port

? ? ? ? var protocol = document.location.protocol;

? ? ? ? var sr_origin = '//' + host;

? ? ? ? var origin = protocol + sr_origin;

? ? ? ? // Allow absolute or scheme relative URLs to same origin

? ? ? ? return (url == origin || url.slice(0,origin.length + 1) == origin + '/') ||

? ? ? ? ? ? (url == sr_origin || url.slice(0,sr_origin.length + 1) == sr_origin + '/') ||

? ? ? ? ? ? // or any other URL that isn't scheme relative or absolute i.e relative.

? ? ? ? ? ? !(/^(//|http:|https:).*/.test(url));

? ? }

? ? function safeMethod(method) {

? ? ? ? return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));

? ? }

?

? ? if (!safeMethod(settings.type) && sameOrigin(settings.url)) {

? ? ? ? xhr.setRequestHeader("X-CSRFToken",getCookie('csrftoken'));

? ? }

});


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读