无法通过Ajax从浏览器向远程服务器传输文件
基于Tomcat 9的Servlet与前端JavaScript数据交互实现
我已经在远程Linux服务器上部署了运行在Tomcat 9上的Servlet,用于接收前端JavaScript函数发送的数据。以下是对应的前端JavaScript代码实现:
function uploadFile(file, numfiles) { var data; var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function () { data = reader.result; var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (xhttp.readyState == 4 && xhttp.status == 200) { numprogressivo = numprogressivo + 1; if (numprogressivo == numfiles){ alert ("sen..."); } } } } }
关键优化与注意点
- 当前代码仅完成了文件读取和XHR回调逻辑的定义,但缺少实际发送请求的核心代码。需要在
reader.onload回调内补充请求初始化与发送步骤,示例如下:// 替换为你的Servlet实际映射路径 xhttp.open("POST", "/upload-servlet", true); // 根据Servlet接收数据的格式设置请求头,比如发送DataURL可使用text/plain xhttp.setRequestHeader("Content-Type", "text/plain"); // 发送转换后的文件DataURL数据 xhttp.send(data); - 变量
numprogressivo需要提前在全局或函数作用域内声明并初始化(如var numprogressivo = 0;),避免运行时出现未定义错误。 - 确认远程Linux服务器的防火墙已开放Tomcat默认端口(8080),且Servlet的
web.xml或注解配置的映射路径与前端请求URL完全匹配。
内容的提问来源于stack exchange,提问作者Hydronit
相关产品推荐
相关产品推荐

