0

我尝试了Alex Kuhl 的 ajax 脚本将图像上传到 Django 1.4。

我的第一个问题是为什么我得到一个空白页面,萤火虫告诉我我有一个错误:

在我的模板 html 中:


$ is not defined
element: $('#file-uploader')[0],            

这是我的整个 html 文件: http: //pastebin.com/NjbV5gMn

我的第二个问题是为什么 ajax 代码使用{{ csrf_token }}而不是{% csrf_token %}. 但如果我使用{% csrf_token %},我会得到萤火虫错误:


missing } after property list

'csrf_token': '<div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='Cx0zFFak6OLgrHiAnFa3k4BPDmn4BgoT' /></div>',

编辑:我将元素更改为document.getElementById('file-uploader')它似乎工作,所以我想我已经解决了我的第一个问题。

4

1 回答 1

0

第一个问题$是jQuery库引入的,使用前需要加载。(或使用document.getElementById('file-uploader')相当于$('#file-uploader')[0]

对于第二个问题,javascript 行需要一个 csrf 令牌,它可以通过 引入{{ csrf_token }},而不是一个 div 标签,其中包含一个带有 csrf 令牌的输入字段作为其值,它{% csrf_token %}确实如此。

为了工作,请检查文档{{ csrf_token }}中的第三步,添加到您的视图中并在您的视图中使用。'django.core.context_processors.csrf'TEMPLATE_CONTEXT_PROCESSORSRequestContext

于 2012-06-02T07:08:25.707 回答