在multipart / form-data中缺少边界值

时间:2017-03-21 20:27:20

标签: jquery ajax file-upload

我正在尝试使用jquery ajax(在IE 11中)上传文件,并且它因服务器错误而崩溃。在开发者工具中>网络标签>如果我选择POST请求并转到Headers选项卡,我会看到“Content-Type:multipart / form-data”,而我 在标题中看不到边界值 。我尝试过contentType:undefined和contentType:false都没有用。如果重要的话,我正在使用jquery-1.11.0。这是我的代码示例。我对这些都很陌生,我必须在这里遗漏一些东西。

Html:

 <form id="example-form" enctype= "multipart/form-data">
      file.type.id:
      <input type="text" name="file.type.id" value="3P">
      <br>        

      file.title:
      <input type="text" name="file.title" value="My File">
      <br>
      file.edition:
      <input type="text" name="file.edition" value="1">
      <br>

      file.format:
      <input type="text" name="file.format" value="txt">
      <br>
        <input type="file" name="fileContent" id="fileu">

         <input type="submit" value="Submit" >
</form>

JS

function apicall(type, apiUrl, data, userID, contentType, dataType) {
    var request = jQuery.ajax({         
        type: type,
        url: apiUrl,                        
        headers: { 'user_Id': userID},          
        dataType: dataType,
        contentType: undefined,
        processData: false,
        data: data
    });
    return request;
}

function upload() {
    var formData = new FormData($('#example-form')[0]);
    var type = "POST";
    var url = "<post url>";

    //var contentType = "multipart/form-data";
    var contentType = undefined;
    var dataType = "json";
    var userId = "<unique User ID>";

    var fileUpload = apicall(type, url, formData, userId, contentType, dataType);
    $.when(fileUpload).done(function (data, status, jqXHR) {
        alert("hoho" + JSON.stringify(data));
    }).fail(function (jqXHR, textStatus) {
        alert("err: " + JSON.stringify(jqXHR))
    });  
}

1 个答案:

答案 0 :(得分:0)

我切换到jquery最新版本并修复了它。