请求被拒绝,因为没有找到多部分边界

我在LightBox中使用Form,其中包含一些输入元素。

当我提交表格而不是表格重定向到它的行动地点时。 我只是想在不重定向用户的情况下提交表单,因此用户可以在灯箱上停留而不会丢失他的数据。

我已经尝试过jquery ajax调用

 var data = new FormData(); var $inputs = $('#imageUploadForm :input'); var values = {}; $inputs.each(function() { values[this.name] = $(this).val(); data.append(this.name, $(this).val()); }); $.ajax({ url: 'uploadImage.do', data: data, cache: false, contentType: 'multipart/form-data', processData: false, type: 'POST', success: function(data){ alert(data); } }); 

但是在我的FileUploader servlet中获取服务器端的错误。

 The request was rejected because no multipart boundary was found 

任何人都可以告诉我,我错过了什么?

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

     Test form     

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

 $('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不要添加Content-Type标头,否则边界字符串将丢失,这可能是你的服务器错误的原因。

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