Java 请求被拒绝,因为找不到多部分边界

Java 请求被拒绝,因为找不到多部分边界,java,javascript,jakarta-ee,jquery,Java,Javascript,Jakarta Ee,Jquery,我在LightBox中使用一个表单,其中包含一些输入元素 <form name="imageUploadForm" action="uploadImage.do" method="post" enctype="multipart/form-data"> <input type="text" id="id" name="id" style="display: none;" value=""> <div id="fileUploaderDiv">

我在LightBox中使用一个表单,其中包含一些输入元素

<form name="imageUploadForm" action="uploadImage.do" method="post" enctype="multipart/form-data">
<input type="text"  id="id" name="id" style="display: none;" value="">
    <div id="fileUploaderDiv">
         <input type='file' name="file0" id ="file0"  />
    </div>
<input type="submit" value="Submit">
</form>
但在我的FileUploaderServlet的服务器端出现错误

The request was rejected because no multipart boundary was found 

有人能告诉我我缺少了什么吗?

这是使用jquery Ajax提交表单的最简单形式。我没有测试过这个,但它应该可以工作:-)


测试表
$(文档).ready(函数(){
$('#sbmt')。单击(函数(){
var text1=$('#text1').val();
var text2=$('#text2').val();
///输入的验证
///然后
$.ajax(
{
url:'submit.php',
键入:“post”,
数据:{'text1':text1,'text2':text2},
成功:功能(数据){
警报(“已提交表格。响应为:“+数据”);
}
}
).fail(函数(){alert(“Failed!!”);});
});
});

您需要防止提交表单的默认操作:

$('form[name="imageUploadForm"]').on('submit', function(e) {
     e.preventDefault();
     $.ajax({
            type: 'POST',
            url: 'uploadImage.do',
            data: data,
            cache: false,
            contentType: false,
            processData: false,
            success: function(data){
               alert(data);
            }
     });
});
我认为在使用FormData类时,应该将contentType选项设置为false,强制jQuery不添加内容类型头,否则将丢失边界字符串,这可能是服务器错误的原因


您还必须将processData标志设置为false,否则,jQuery将尝试将FormData转换为字符串,这将失败。

让submit按钮触发JS事件,收集数据,然后(如elclanrs所说)->AJAX这个问题可能会有所帮助:顺便说一句,我的Servlet代码,现在看起来您希望通过表单传递文件。这比那更复杂。在谷歌搜索Valums上传程序。如果您需要上传ajax文件,那么这是一个很好的上传工具。您的努力给您留下了深刻的印象。:-)谢谢你,伙计。我喜欢堆栈交换,从这里学到了很多东西。所以我试着回答我能回答的任何问题,作为回报:)@SugatoSengupta谢谢我用不同的方式尝试了你的解决方案,但在服务器端出现了错误。我编辑了我的问题。我尝试了你的解决方案,但google chrome抛出了一个未捕获的类型错误:非法调用。b_f.extend.param f.extend.ajax(匿名函数)f.event.dispatch f.event.add.h.handle.i
$('form[name="imageUploadForm"]').on('submit', function(e) {
     e.preventDefault();
     $.ajax({
            type: 'POST',
            url: 'uploadImage.do',
            data: data,
            cache: false,
            contentType: false,
            processData: false,
            success: function(data){
               alert(data);
            }
     });
});