我后台开发人员和Javascript中的新手。我试图使用旧的JQuery版本(1.4.2)上传文件,因为无法在当前项目中更改它。
此代码适用于任何JQuery版本> = 1.5
$('#uploadform').submit(function(e) {
var formData = new FormData(this);
$.ajax({
type:'POST',
url: '/uploader',
data:formData,
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
//
}
return myXhr;
},
cache:false,
contentType: false,
processData: false,
success: function(data){
//
},
error: function(data){
//
}
});
});
每次在JQuery 1.4.2上运行它时,我在Chrome(和其他浏览器)中都有此错误:
POST http://localhost:8080/uploader net::ERR_CONNECTION_RESET
jquery-1.4.2.js:5252
有没有办法在没有JQuery版本更改的情况下修复它?
UPD
以下是html
中的<head>
部分
<head>
<meta charset="UTF-8">
<title>Remedy Uploader</title>
<link type="text/css" rel="stylesheet" href="style.css" media="screen"/>
<script type='text/javascript' src="https://code.jquery.com/jquery-1.4.2.js"></script>
<script type='text/javascript' src="script.js"></script>
答案 0 :(得分:0)
var oldXHR = jQuery.ajaxSettings.xhr;
jQuery.ajaxSettings.xhr = function() {
var xhr = oldXHR();
if(xhr instanceof window.XMLHttpRequest) {
xhr.upload.addEventListener('progress', on_progress, false);
xhr.upload.addEventListener('load', on_loaded, false);
xhr.addEventListener('abort', on_abort, false);
}
return xhr;
};
$.ajax({
xhr: function() {
var xhr = jQuery.ajaxSettings.xhr();
if(xhr instanceof window.XMLHttpRequest) {
xhr.upload.addEventListener('progress', on_progress, false);
xhr.upload.addEventListener('load', on_loaded, false);
xhr.addEventListener('abort', on_abort, false);
}
return xhr;
}
});
检查以下网址
答案 1 :(得分:0)
首先,您应尝试在http://localhost:8080/uploader处对所有代码进行评论,然后只打印hello
条消息。然后在浏览器中测试它,它必须正常工作。如果它不起作用,首先修复它,但是当工作时然后尝试跟随请求,因为它是
使用jquery 1.4.2,您可以使用与今天使用的相同的ajax请求
$.ajax({
type: "POST",
//I commented followin gintentionally, you should check the
// before un-commenting this line
//data : formData code
url: 'http://localhost:8080/uploader',
success: function(data){alert(data)},
error: function(err){ alert(er.responseText)};
});
当然,你将面临没有错误