使用Jquery上载文件时出错&ajax
Error in file upload using Jquery & Ajax
我正在尝试使用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
方法时。如何解决这些错误?
FormData
构造函数需要一个DOMElement,而不是jQuery对象,因此需要修改FormData()
的定义。试试这个:
$("#tradeForm").submit(function(event){
event.preventDefault();
var $form = $(this);
var formData = new FormData($form[0]); // note [0] here
url = $form.prop("action");
$.ajax({
url: url,
type: "POST",
data: formData,
processData: false,
contentType: false
}).done(function(data) {
console.log(data);
});
});
更改此项:
var formData = new FormData(form);
至
var formData = new FormData(form[0]);
由于FormData需要一个表单——DOM元素this
,而不是jQuery对象$(this)
将表单变量更改为:
var form = document.getElementById('tradeForm');
url = $(form).attr("action");
设置contentType: 'Content-Type: multipart/form-data';
我找到了问题的修复方法。以下是所做的更改:
-
将DOM元素传递给FormData构造函数,而不是Jquery Object
var formData=新的formData(document.getElementById("tradeForm")); -
从html中的表单中删除attribute-enttype="multipart/form-data"
否则,将无法在服务器端读取表单数据。 -
使用正确的服务器URL(在我的情况下,URL是错误的)。错误消息-SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3而无法完成操作是由于错误的URL。这是一种误导。
相关文章:
- 使用ajax的服务器端分页&jQuery
- 无法使用AJAX&PHP
- Richfaces&Ajax-Cufon字体替换
- Jquery&Ajax表单验证功能
- Jquery、AJAX&PHP,表单提交不起作用
- OnlineExam中的countdowntimer随时间的流逝自动提交&通过AJAX&如果页面刷新,则
- 是php json_encode&AJAX破坏了我的数组
- jQuery添加/删除类&AJAX不起作用
- 使用Jquery上载文件时出错&ajax
- 当只需要遍历DOM时,$.ajax&延期
- AJAX修改DOM&调用函数
- php&ajax检索post数据失败
- 在ajax中使用post方法和perl脚本&参数
- rails应用程序中的AJAX请求错误:xhr.send((options.hasContent&&op
- 通过ajax向服务器添加评论&当前网页
- Ajax表单提交&Javascript确认错误
- 添加行&通过ajax提交数据
- 被迫处理一个&在XML文件中,试图解决解析错误$.ajax({..})
- Ajax帖子不发布“&"信
- Ajax从JSON返回未定义-登录系统&最佳实践