这是一个非常基础的请求-响应测试。浏览器使用jQuery $.ajax API向servlet发送“hello from browser”消息,servlet接收此消息,然后使用org.json.simple库创建JSON对象,并向浏览器发送带有消息“hello from server”的JSON响应。
我在本地主机上运行这个测试,并假设我的IP地址是123.123.12.123,平台是Ubuntu,服务器是Tomcat 6.0,在Eclipse IDE中运行。
测试1:我从Eclipse启动服务器,打开Firefox,输入http://localhost:8080/myproject/test.jsp,我可以看到servlet接收了消息并且浏览器接收到了响应,测试通过。
测试2:服务器仍在Ubuntu上的Eclipse上运行,我从VirtualBox启动Windows 7客户机和Windows 7上的Firefox浏览器,输入http://123.123.12.123:8080/myproject/test.jsp,按照我期望的工作,测试通过。
测试3:服务器仍在Ubuntu上的Eclipse上运行,打开Internet Explorer 9浏览器,输入地址http://123.123.12.123:8080/myproject/test.jsp,没有反应。 调试信息如下:
响应 HTTP/1.1 200 OK
响应体 {"message":"hello from server"}
test.jsp的代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title>该代码段包含了一个使用jQuery向Servlet发送JSON数据并接收响应的示例。代码首先创建一个名为request的JSON对象,然后将其转换为JSON字符串。接下来,它使用jQuery.ajax()函数将请求发送到TestServlet。如果成功,它会弹出响应中的"message"属性。如果失败,则会弹出错误消息。
在服务器端,TestServlet类继承自HttpServlet类,并处理POST请求。它从请求参数中解析JSON对象,并使用PrintWriter输出带有"message"属性的JSON响应,表示服务器已经成功响应请求。 最后需要注意的是,该代码段不应直接运行,而是应作为Web应用程序的一部分运行。我收到了提示readyState:0和status:0. 但我可以在响应正文中看到{"message":"hello from server"},响应头是:
键 值 响应 HTTP/1.1 200 OK错误函数为:
error: function(xhr,err) { alert('Ajax readyState: '+xhr.readyState+'\nstatus: '+xhr.status + ' ' + err); }