我正在尝试创建一个人们可以发布内容的网站。目前,我正在尝试使用户可以按顺序添加文件并将其作为 ajax 中的多部分请求发送。但是,当我尝试上传文件时,我一直在 chrome 中收到连接重置错误。我必须重新登录服务器才能看到新文件。
HTML代码:
JavaScript:
var submittedFileData = [] ;
$('.fileInput').on('change', function () {
var files = $(this).prop('files') ;
for (var i = 0; i < files.length; i++) {
var p = document.createElement("p") ;
$(p).text(files[i].name + " (Click here to remove file)") ;
$(p).addClass("filename") ;
$("#fileContainer").append(p) ;
submittedFileData.push(files[i]);
}
});
$('#postButton').click(function () {
var privacy = $( "input[type=radio][name=privacy]:checked" ).val();
var formData = new FormData();
//append privacy
formData.append("privacy" , privacy) ;
//append groups
$( "input[type=checkbox][name=group]:checked" ).each(function(i) {
formData.append("group" , $(this).val()) ;
}) ;
//append text
formData.append("text" , $("#postTextarea").val()) ;
//append files
for (var i = 0; i < submittedFileData.length; i++) {
formData.append("file" , submittedFileData[i]) ;
}
$.ajax({
gõ: "BÀI ĐĂNG",
url: "post-upload",
data: formData,
processData: false,
contentType: false,
bộ đệm: sai,
async : false,
thành công: hàm (dữ liệu) {
},
error: function (jqXHR, textStatus, errorThrown) {
alert(errorThrown) ;
}
});
$.post("feed-view","relation="+activeTab ,getXMLResponse) ;
});
用于 tomcat 9 的 server.xml
sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation"
maxThreads="150" SSLEnabled="true"
scheme="https"
secure="true" maxPostSize="-1" disableUploadTimeout="false" connectionUploadTimeout="600000">
certificateKeystorePassword=""
type="RSA" />
很可能没有任何代码方面的错误,而是服务器配置问题。
默认情况下,大多数服务器都设置了相当小的超时和相当小的上传大小限制。
这取决于您使用的服务器类型(nginx、Apache、Node/Express 等)默认值是什么以及如何配置它们,但如果您的连接正在重置,那将是我首先要考虑的事情或切断中途上传。
Tôi là một lập trình viên xuất sắc, rất giỏi!