邮件发送表格附件留在同一页面

时间:2014-02-17 14:49:29

标签: jquery ajax spring

我的网络应用程序中有一个“发送邮件”表单,允许用户发送有关我的应用程序的评论或建议。首先,我创建了一个简单的POST表单,该表单运行良好,并在发送邮件后重新加载了“您的邮件已成功发送”消息。

问题是当按下浏览器时,它会返回到相同的表单页面,因为它已经两次添加到历史记录堆栈中。

所以我所做的是通过AJAX使用jQuery发送表单发布请求,然后只在响应正常时显示消息。这是我正在使用的代码:

$.post(form.attr('action'), form.serialize(),
    function (response) {
        var success = eval(response).success;
        if (success == '1')
            showSuccessDialog(successMessage);
        else
            showSuccessDialog(errorMessage);
    }, 'json')
    .fail(function (data) {
        showSuccessDialog(errorMessage);
    });

问题是,我还有一个“附件”文件输入,可以正常POST请求,但不会通过我的AJAX帖子请求发送。

我做错了吗?有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

仅在较新的浏览器中支持通过XmlHttpRequest发送文件(读取:IE10),因此您可能需要验证是否已准备好执行此操作。

如果你是,请查看FormData JavaScript API。它允许发送文件以及您通常的表单数据。

有些JS插件使用这个API,所以你可能想环顾四周,看看你是否能找到可以使用的东西。我目前正在将其放在一起,所以您可能需要查看source code以供参考。