0

我有一个带有新闻源功能的 Django webapp。新闻源具有与之相关的标题、正文和图像。用户可以编辑和更新他们的新闻源,包括添加新图像。

目前我正在获取每个提要项目的所有数据,如下所示:

var newsfeeds = [];
$('.feed').each( function (index, element) {
    var feed_dict = {'title': $(this).children('#title').val(),
                     'id': $(this).children('#feed_' + index + '_id').val(),
                     'should_delete': $(this).children('#should_delete').val(),
                     'subtitle': $(this).children('#subtitle').val(),
                     'body': $(this).children('#body').val()};
    newsfeeds.push(feed_dict);
});

然后使用$.ajax(). 这很好用。

现在我正在处理图像的东西。每个提要都有一个<input type="/>与唯一 ID 相关联的关联,因此我应该能够获取每个文件。那么问题是如何发送它们,以便我可以获取 Djangorequest.POSTrequest.FILES. 我试过FormData在 JS 中使用这样的对象:

var data = new FormData();
$('.image_input').each(function(index, element) {
    data.append('file_' + index, element.files);
});

但这给了我一个NS_ERROR_CANNOT_CONVERT_DATAFirebug。

在这一点上,我很迷茫。任何指针都会非常有帮助。

4

1 回答 1

0

实际上不可能通过 ajax 发送文件 - 如果您使用类似jquery 表单插件的东西来“劫持”您的表单,它将在幕后将其提交到 iframe,而不是使用 XHR。

在任何情况下,你真的应该以这样一种方式编写你的表单,使它们在没有 javascript 的情况下工作,然后使用 jquery 表单来逐步增强它们。那么你甚至不需要担心这种事情。

于 2012-07-03T22:00:01.480 回答