【发布时间】:2016-07-10 16:37:59
【问题描述】:
我正在尝试使用 jQuery 和 AJAX 上传文件。我使用了 HTML5 支持的 FormData 对象。我正在使用 IE11。以下是我的代码:
<form id="tradeForm" method="post" action="/trade.action?method=addTrade" enctype="multipart/form-data">
Trade Type : <input type="text" id="tradeType" name="tradeType">
Trade Document : <input type="file" id="attachedFile" name="attachment" size="40">
</form>
我尝试过使用$.post:
$("#tradeForm").submit(function(event){
event.preventDefault();
var form = $(this);
var formData = new FormData(form);
url = form.attr("action");
$.post(url, formData, function(data) {
console.log(data);
});
});
并且还使用$.ajax
$("#tradeForm").submit(function(event){
event.preventDefault();
var form = $(this);
var formData = new FormData(form);
url = form.attr("action");
$.ajax({
url: url,
type: "POST",
data: formData,
processData: false, // tell jQuery not to process the data
contentType: false // tell jQuery not to set contentType
}).done(function(data) {
console.log(data);
});
});
我收到以下错误:
参数不是可选的
当使用$.post方法时
SCRIPT7002:XMLHttpRequest:网络错误 0x2ef3,由于错误 00002ef3 无法完成操作
当使用$.ajax 方法时。我该如何解决这些错误?
【问题讨论】:
-
你有没有尝试使用 serialize() 函数? var formData = form.serialize()
-
@cralfaro OP 正在发送文件,因此 serialize() 在这里不适用。
标签: javascript jquery ajax form-data