Java 如何在ajax中发送多部分请求?

Java 如何在ajax中发送多部分请求?,java,javascript,ajax,servlets,Java,Javascript,Ajax,Servlets,给定的代码我需要上传zip文件,所以我需要从ajax向服务器发送多部分请求。但是服务器获取请求空值如何解决这个问题呢?是否有向服务器发送请求的想法 function importNow(serverURL, parameters) { document.body.style.cursor = "wait"; $.ajax({ url: serverURL, data: parameters,

给定的代码我需要上传zip文件,所以我需要从ajax向服务器发送多部分请求。但是服务器获取请求空值如何解决这个问题呢?是否有向服务器发送请求的想法

function importNow(serverURL, parameters) {
        document.body.style.cursor = "wait";
        $.ajax({
            url: serverURL,
            data: parameters,
            processData: false,
            contentType: false,
            type: "POST",
            cache: false,
            dataType: "text",
            success: function(data) {
                if ($.trim(data) === "Success") {
                    updateStatusMessage("success", "Import scenario successfully");
                } else {
                    updateStatusMessage("failure", $.trim(data));
                }
                document.body.style.cursor = "default";
            },
            async: false
        });
    }

    function importScenario() {
        //window.location.href = clientURL + "/common/jsp/import.jsp";
        var serverURL = "http://localhost:8080/bwsim/UploadScenario";
        var parameters = "requestType=Import&subRequestType=importScenario&userName=" + userName ;
         refButton = '<form id="importForm" class="userInputForm" enctype="multipart/form-data">' +
         '<input id="file" name="file" type="file" />' +
         '</form>';
         document.getElementById("popupDiv").innerHTML = refButton;
         $("#popupDiv").dialog({
             title: "Import Scenario",
             draggable: true,
             bgiframe: true,
             modal: true,
             width: 500,
             heigth: 100,
             show: {effect: 'blind', duration: 500},
             hide: {effect: 'fade', duration: 1000},
             zIndex: 1000,
             buttons: {
                 'Upload': function() {
                     if ($("#importForm").valid()) {
                         parameters; 
                         importNow(serverURL, parameters);
                         $(this).dialog("close");
                     }
                 },
                 'Cancel': function() {
                     $(this).dialog("close");
                 }
             }
         });
    }
function importNow(服务器URL、参数){
document.body.style.cursor=“等待”;
$.ajax({
url:serverURL,
数据:参数,
processData:false,
contentType:false,
类型:“POST”,
cache:false,
数据类型:“文本”,
成功:功能(数据){
如果($.trim(数据)=“成功”){
updateStatusMessage(“成功”,“导入场景成功”);
}否则{
updateStatusMessage(“失败”,$.trim(数据));
}
document.body.style.cursor=“默认”;
},
异步:false
});
}
函数importScenario(){
//window.location.href=clientURL+“/common/jsp/import.jsp”;
var serverURL=”http://localhost:8080/bwsim/UploadScenario";
var parameters=“requestType=Import&subRequestType=importScenario&userName=“+userName;
REF按钮=“”+
'' +
'';
document.getElementById(“popupDiv”).innerHTML=refButton;
$(“#popupDiv”)。对话框({
标题:“导入场景”,
真的,
bgiframe:是的,
莫代尔:是的,
宽度:500,
身高:100,
显示:{效果:“盲”,持续时间:500},
隐藏:{效果:“褪色”,持续时间:1000},
zIndex:1000,
按钮:{
“上载”:函数(){
if($(“#importForm”).valid(){
参数;
importNow(服务器URL、参数);
$(此).dialog(“关闭”);
}
},
“取消”:函数(){
$(此).dialog(“关闭”);
}
}
});
}

您可以轻松实现。使用此插件,您可以通过ajax调用随表单轻松发送额外的
$\u POST
数据。

要执行多部分/formdata ajax请求(带文件),您必须使用formdata对象。您可以手动将字段添加到对象中,然后通过ajax发送,也可以使用表单元素构建它

     ...
     var serverURL = "http://localhost:8080/bwsim/UploadScenario";
     var refButton = '<form id="importForm" class="userInputForm" enctype="multipart/form-data">' +
     '<input id="file" name="file" type="file" />' +
     '<input value="Import" name="requestType" type="hidden" />' + 
     '<input value="importScenario" name="subRequestType" type="hidden" />' + 
     '<input value="'+userName +'" name="userName" type="hidden" />' + 
     '</form>';
     document.getElementById("popupDiv").innerHTML = refButton;
     $("#popupDiv").dialog({
         title: "Import Scenario",
         draggable: true,
         bgiframe: true,
         modal: true,
         width: 500,
         heigth: 100,
         show: {effect: 'blind', duration: 500},
         hide: {effect: 'fade', duration: 1000},
         zIndex: 1000,
         buttons: {
             'Upload': function() {
                 if ($("#importForm").valid()) {
                     var parameters = new FormData($('#importForm')[0]); // formdata object constructed with form
                     importNow(serverURL, parameters);
                     $(this).dialog("close");
                 }
             },
             ...
。。。
var serverURL=”http://localhost:8080/bwsim/UploadScenario";
var refButton=''+
'' +
'' + 
'' + 
'' + 
'';
document.getElementById(“popupDiv”).innerHTML=refButton;
$(“#popupDiv”)。对话框({
标题:“导入场景”,
真的,
bgiframe:是的,
莫代尔:是的,
宽度:500,
身高:100,
显示:{效果:“盲”,持续时间:500},
隐藏:{效果:“褪色”,持续时间:1000},
zIndex:1000,
按钮:{
“上载”:函数(){
if($(“#importForm”).valid(){
var parameters=newformdata($('#importForm')[0]);//使用表单构造的FormData对象
importNow(服务器URL、参数);
$(此).dialog(“关闭”);
}
},
...