【问题标题】:How call $.post and set content type Multipart/form-data data如何调用 $.post 并设置内容类型 Multipart/form-data 数据
【发布时间】:2012-05-24 04:40:16
【问题描述】:

我的 JSP 页面中有一个 java 脚本函数

    function submitProductCategoryForm()
    {
        document.getElementById('isSave').value="1";
        var elements=document.getElementById('addProductCategoryFrom').elements;
        var url = "addProductCategory.jsp?";
       for (var i = 0; i < elements.length; i++)
          url += elements[i].id + "=" + encodeURIComponent($("#" + elements[i].id).val()) + "&";
       $.post(url, function(data)
       {
            alert("Function Complete");
       }); 
   }

它调用一个jsp页面,在这里我将数据保存在DB中。

现在这个表单上有一个文件输入也在那里,所以必须将内容类型设置为multipart/form-data

但是当我调用这个函数时,我发现了错误

java.io.IOException: 发布的内容类型不是 multipart/form-data

我的表格是这样的

<form action="addProductCategory.jsp" method="post" enctype="multipart/form-data" id="addProductCategoryFrom">

请问我如何将内容类型设置为多部分。

提前致谢

【问题讨论】:

  • 这个问题已经回答了。您不能使用 Ajax 提交文件。 linklink
  • 如果你想以 Ajax 方式上传文件,你可以使用像 Uploadify 这样的东西——它本身不支持。

标签: javascript jquery jakarta-ee post multipartform-data


【解决方案1】:

我使用了一个 FormData 对象,它似乎可以满足您的要求,请查看我的问题/解决方案https://stackoverflow.com/a/21191491/995514

$("#theForm").submit(function(e){
    e.preventDefault();
    var theForm = new FormData($(this)[0]);
    $.ajax({
        url: '.../rest/save',
        type: 'POST',
        data: theForm,
        cache, false,
        contentType: false,
        processData: false
    });
    return false;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    相关资源
    最近更新 更多