Java 如何在ajax中发送多部分请求?
给定的代码我需要上传zip文件,所以我需要从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,
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(“关闭”);
}
},
...