使用YUI上传器请求发送Django CSRF Coo​​kie

时间:2010-06-24 18:24:08

标签: django yui

我正在尝试使用YUI上传器将文件上传到Django视图。

但是,我在CsrfViewMiddleware中收到403错误。我已经确定问题是由于Flash上​​传器(YUI上传器使用的)没有在文件上传请求中发送CSRF cookie。

YUI上传者的uploadAll()功能允许以对象形式与上传请求一起发送附加数据。由于可以轻松检索CSRF cookie,我试图通过uploadAll()函数将cookie添加到请求中,但我不完全确定将其发送到什么格式,以便CsrfViewMiddleware找到它所期望的cookie 。这不起作用:

var cookie = YAHOO.util.Cookie.get('csrftoken'); uploader.uploadAll(url, 'POST', { csrfmiddlewaretoken: cookie });

非常感谢任何见解!

1 个答案:

答案 0 :(得分:0)

不幸的是,由于Flash播放器的限制,YUI Uploader无法将cookie插入到请求的标头中,这是后端所期望的。你可以做的唯一事情,就是那个额外的参数,就是将POST变量添加到请求中。但是,这意味着您需要额外的服务器逻辑将它们作为POST变量提取,并将它们与cookie记录进行比较 - 默认情况下它不起作用。

如果您无法修改服务器端代码,您将无法验证从上传程序发送的请求:(。