10秒后服务器响应时如何使用ajax发送请求?
Posted
技术标签:
【中文标题】10秒后服务器响应时如何使用ajax发送请求?【英文标题】:How to send a request using ajax when the server response after 10 sec? 【发布时间】:2021-05-24 11:15:35 【问题描述】:我只想向 servlet 发送请求,并且在某些事件发生后 servlet 将发送响应 我认为我在 Ajax 中的问题是获取请求,但这里是我的 servlet
@WebServlet(name = "Servlet", value = "/Servlet")
public class Servlet extends HttpServlet implements Observer
private HttpServletResponse response;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
this.response = response;
Cookie[] cookie = request.getCookies();
//response when game start.
int gameId = Integer.parseInt(cookie[2].getValue());
Maze maze = register.gamePool.getGame(gameId);
maze.getGameStatus().addObserver(this);
@Override
public void update(Observable o, Object arg)
GameStatus gameStatus = (GameStatus) o;
if (((GameStatus) o).isGameStart())
this.processResponse(gameStatus);
o.deleteObserver(this);
private void processResponse(GameStatus gameStatus)
String json = new Gson().toJson(gameStatus.isGameStart());
try
if(!response.isCommitted())
response.getWriter().write(json+"here is response in json");
catch (IOException e)
e.printStackTrace();
这是我的 Ajax 请求
$(document).ready(function ()
$.ajax(
type: "GET",
url: "/WNA_MazeGame_Online_war_exploded/Servlet",
success: function (data, status)
alert("data:"+data+"\n");
,
);
);
基本上响应将来自服务器任何时间(最多 1 分钟)。 但是当我尝试这个时,警报会立即显示为没有数据的页面!
【问题讨论】:
【参考方案1】:您可以使用“错误”功能调试您的请求,然后尝试在控制台中记录您的请求。
$(document).ready(function ()
$.ajax(
url: "/WNA_MazeGame_Online_war_exploded/Servlet",
contentType: "application/json; charset=utf-8",
type: "GET",
dataType: "json", //Specify response type from server
success: function (result)
console.log("Success: " + result)
,
error: function (jqXHR, exception)
console.log(jqXHR, exception)
,
);
);
【讨论】:
我能得到更多帮助吗 plz :) 它给了我 Object "parsererror"以上是关于10秒后服务器响应时如何使用ajax发送请求?的主要内容,如果未能解决你的问题,请参考以下文章