formData.append()无效 - 在Chrome,Mozilla,IE中检查

时间:2014-07-17 20:38:13

标签: jquery-forms-plugin

我第一次使用Jquery FormData,但似乎缺少一些东西。在JS-postAjax方法中,当调用新的FormData()时,它只是跳过剩余的行并转到函数的末尾而没有任何错误。我在这里做错了什么?

template.js //按此顺序编写脚本文件

<script src="js/jquery-2.1.0.js"></script>
<script src="js/jquery.form.js"></script>
<script src="js/bootstrap.js"></script>

<script src="js/bootstrapValidator.js"></script>
<script src="js/hemoncCBCFunctions.js"></script>

<script src="js/validations.js"></script>

JSP

<form name ="newSectionSubmitForm" id="newSectionSubmitForm"  class="form-horizontal" role="form" method="post" ENCTYPE="multipart/form-data">

<table>
   <tr>
     <td>
       <input type="file" id='imageFile0' name='imageFile0' class="form-control" />
      </td>
   </tr>
</table>

<form>

JS

function submitNewSection(targetUrl, form) {

    postAjaxData(null, 'content', targetUrl, form, null, null);
}

function postAjaxData(initiatingElement, targetElement, targetUrl, form,
    additionalParamMap, successCallback) {

var $targetElement = $('#' + targetElement);

var serializedFormData;

serializedFormData = $('#' + form).serialize();

for ( var j in additionalParamMap) {
    serializedFormData += "&" + j + "=" + additionalParamMap[j];
}

alert('serialized form data ' + serializedFormData);

var formData = new FormData(serializedFormData);//**exits the function no errors**

formData.append("file", $('#imageFile0').files[0]);

alert('serialized form data ' + formData);

$.ajax({
    type : "POST",
    cache : false,
    data : formData,
    url : targetUrl,

    success : function(data) {
        processRedirect(data);

        $targetElement.html(data);
        $targetElement.show();

        if (successCallback != null) {
            successCallback(data);
        }
    },
    error : function(xhr, httpRequest, textStatus, errorThrown) {
        var errorId = xhr.getResponseHeader("errorId");

        var errorMsg = xhr.getResponseHeader("errorMessage");

        if (errorId != null && errorId != undefined) {
            $("#page_error").html(
                    "An unexpected error has occurred.  Error Id: "
                            + errorId);
        } else {
            $("#page_error").html("An unexpected error has occurred.");

        }
    },

});

控制器文件(但代码无法到达此处)

@RequestMapping(value = "/submitNewSection.html")
public String submitNewSection( MultipartHttpServletRequest req, HttpServletRequest  request, Model model) {

    Iterator<String> itr =  req.getFileNames();

    MultipartFile mpf = req.getFile(itr.next());
    System.out.println("file name " + mpf.getOriginalFilename() +" uploaded!");

}

非常感谢。

0 个答案:

没有答案