jQuery MiniUI

 找回密码
 立即注册
查看: 2802|回复: 3
打印 上一主题 下一主题

jQuery MiniUI不支持Python [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2014-6-6 14:20:52 |只看该作者 |倒序浏览
miniui的默认ajax取数据方式是post

python对post方式采取了csrf保护

如果miniui支持get方式那么就可以更好的支持python了

采用$.ajaxSetup({type:"GET" ,global:true})并不能生效。

Rank: 8Rank: 8

沙发
发表于 2014-6-6 14:26:55 |只看该作者
get方式有传输量限制,交互内容多一点很有问题

所以一般类似表格之类的都是post,
而像combobox这类数据量较小的,默认就是get

Rank: 3Rank: 3

板凳
发表于 2014-6-6 14:54:07 |只看该作者
factory 发表于 2014-6-6 14:26
get方式有传输量限制,交互内容多一点很有问题

所以一般类似表格之类的都是post,

如果miniui能支持csrf,那么post方式下也支持python

用的是python3.4+django1.6.5

http://hi.baidu.com/cly84920/item/7da439ce8e27c80c0ad93a81
http://blog.sina.com.cn/s/blog_634bc2230100q7du.html

Django使用ajax POST表单时,为防止CSRF攻击,会验证csrftoken的值是否有效;如果没有在settings中设置csrf中间件及ajax post requestheader中没有指定csrftoken的话,就会return “403”,是无法post请求的,那么就需要我们手动添加。


--------------------------settings:----------------------------------
MIDDLEWARE_CLASSES = (
    'django.middleware.csrf.CsrfMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.middleware.csrf.CsrfResponseMiddleware',

----------------------------------------------------------------------

------------------------------JS----------------------------------------------------
function getCookie(sName){var aCookie=document.cookie.split("; ");for(var i=0;i<aCookie.length;i++){var aCrumb=aCookie.split("=");if(sName==aCrumb[0])return   (aCrumb[1]);}return null;}

var myAjax=
new Ajax.Request('http://192.168.1.100/project/update'{method:'POST',setRequestHeader:{"X-CSRFToken":getCookie('csrftoken')},
parameters:'csrfmiddlewaretoken='+getCookie('csrftoken')+"&Fields="+fileds})

Rank: 8Rank: 8

地板
发表于 2014-6-6 16:41:05 |只看该作者
ender.luk 发表于 2014-6-6 14:54
如果miniui能支持csrf,那么post方式下也支持python

用的是python3.4+django1.6.5

引入miniui之后,
在JS文件内重新写下
mini.ajax = function (options) {
            options.type = "GET";
            options.dataType = ....
            .....
            return window.jQuery.ajax(options);
        }

Archiver|普加软件

GMT+8, 2024-11-25 13:19 , Processed in 1.057011 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部