我正在尝试使用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 });
非常感谢任何见解!
答案 0 :(得分:0)
不幸的是,由于Flash播放器的限制,YUI Uploader无法将cookie插入到请求的标头中,这是后端所期望的。你可以做的唯一事情,就是那个额外的参数,就是将POST变量添加到请求中。但是,这意味着您需要额外的服务器逻辑将它们作为POST变量提取,并将它们与cookie记录进行比较 - 默认情况下它不起作用。
如果您无法修改服务器端代码,您将无法验证从上传程序发送的请求:(。