You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:26:22