<script type="text/javascript"> /* js 解析返回的格式为 json */ function telljson(){ // 创建对象,适合于firefox 和safari var xmlhttpRequest= new XMLHttpRequest(); //请求发送路径 url var url="http://localhost:18080/servlet/Servlet3?aa=10"; // Open方法绑定一个发送过程,但不发送数据。Open方法最后一个参数为true时表示异步,否则同步 xmlhttpRequest.open("POST",url,true); // Send方法就是发送请求数据 xmlhttpRequest.send(url); //onreadystatechange 属性存有处理服务器响应的函数 xmlhttpRequest.onreadystatechange =function(){ //readyState 属性存有服务器响应的状态信息。每当 readyState 改变时,onreadystatechange 函数就会被执行。 alert("状态改变了:"+xmlhttpRequest.readyState); // 如果是4 请求已完成(可以访问服务器响应并使用它) if(xmlhttpRequest.readyState==4){ var readstate =xmlhttpRequest.readyState; alert("请求准备状态:"+readstate); var status=xmlhttpRequest.status; alert("请求发送结果"+status); // "responseText”是xmlhttpRequest的一个属性,来以字符串形式存储HTTP响应值;“responseXML”属性是以XML形式来记录HTTP响应的值。 var text= xmlhttpRequest.responseText; alert("json text: "+text); // 获取json 返回值 // 那边传的是json数组的格式,这边解析后就是一个json数组 var json= eval("("+text+")"); var age=json[0].age; var age1=json[0].age1; var age2=json[0].age2; alert("age:"+age+"age1"+age1+"age2"+age2); } } }; </script>
3、servlet返回的数据
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { // 向ajax 返回json格式的数据 String aaa = request.getParameter("aa"); System.out.print("ajax 数据:" + aaa); // 向客户端响应信息 response.setCharacterEncoding("GBK"); response.setContentType("text/json"); PrintWriter out = response.getWriter(); // 这里使用 json 数组的格式 String stu = "[{age:12,age1:23,age2:33}]"; out.print(stu); out.flush(); out.close(); }
PS:这里再为大家提供几款关于xml与json操作的在线工具供大家参考使用:
更多关于JavaScript相关内容可查看本站专题:《JavaScript中ajax操作技巧总结》、《JavaScript操作XML文件技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数据结构与算法技巧总结》