gpt4 book ai didi

javascript - AJAX 调用失败,url 路径是否正确?

转载 作者:行者123 更新时间:2023-11-30 13:48:25 25 4
gpt4 key购买 nike

我是 web 开发的初学者(自学者),我正在尝试通过 AJAX 将我的 javascript .js 文件连接到 java servlet,但我遇到了困难。不是进行AJAX调用,就是不输入java代码,返回回调函数。我的 url 映射或指定的路径是否正确?或者你能看到其他错误吗?谢谢!

JS代码:

    a = parseInt(document.getElementById("num"+ 0).value);

var xhr = new XMLHttpRequest();

xhr.open("GET", "/add?num1=" + a , true ); // true is for Asynchronous request
alert("here3 a=" + a);
xhr.send();
var ret = eval(xhr.responseText); //just trial
alert("eval" + ret);
xhr.onreadystatechange = () => {
if(xhr.readyState == 4 && xhr.status == 200){
document.getElementbyId('ajaxResponse').innerHTML = xhr.responseText;
var ret = eval(xhr.responseText);
alert("Callback1 = " + ret);
}
else(alert("Callback failed"))
};

Java 小服务程序:

public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {

System.out.println("Add Servlet called");
int i = Integer.parseInt(req.getParameter("num1"));
// int j = Integer.parseInt(req.getParameter("num2"));

// int k = i+j;

PrintWriter out = res.getWriter();
out.println("Result is i=" + i);
res.setContentType("text/plain");
res.getWriter().write(i);
}

Web.xml

(servlet): 调用Java com.AddServlet

(servlet 映射):callJava /添加

它只是进入回调函数的其他条件(“回调失败”)。此外,如果映射是在 .xml 文件中完成的,servlet 或 js 文件的位置/文件夹结构是否重要?谢谢!

最佳答案

由于我不熟悉您正在使用的框架,因此我无法在服务器端部分真正帮助您。但以下是我对客户端代码的建议:

  • 使用let代替var
  • 使请求异步的
  • true 标志不是必需的,因为它是默认设置,很快就会被弃用。
  • 最好使用新的 addEventListener API,而不是直接将处理程序添加到预期目标。
  • 在调用opensend 之前完全设置您的请求。
  • 使用 === 运算符代替 ==
const a = parseInt(document.getElementById("num" + 0).value);

let xhr = new XMLHttpRequest();

xhr.addEventListener('readystatechange', (e) => {
if(e.target.readyState === 4){
document.getElementbyId('ajaxResponse').innerHTML = e.target.responseText;
}
});

xhr.open("GET", "/add?num1=" + a);
xhr.send();

如果有效,请告诉我。如果是,您可能需要检查您的服务器是否正确设置了“找到”响应代码 (200)。

关于javascript - AJAX 调用失败,url 路径是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58821027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com