AJax技术

详解Ajax技术(2)

字号+ 作者:H5之家 来源:H5之家 2017-10-12 17:10 我要评论( )

function creatXmlHttpRequest() {if (typeof XMLHttpRequest != 'undefined'){return new XMLHttpRequest();}else if (typeof ActiveXObject != 'undefined'){var MSXML = ['MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP

function creatXmlHttpRequest() { if (typeof XMLHttpRequest != 'undefined') { return new XMLHttpRequest(); } else if (typeof ActiveXObject != 'undefined') { var MSXML = ['MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP']; for (var i = 0; MSXML.length; i ++) { try{ return new ActiveXObject(version[i]); }catch (e) { //....... } } } else { throw new Error('您的系统或浏览器不支持XHR对象!'); } }
GET方式回传json

function checkUserByAjaxGet() { // 第一步,得到一个XMLHttpRequest对象 // var xhr=new XMLHttpRequest(); // 如果说IE6,就需要使用Active组建 // xmlhttp=new ActiveXObject(MSXML[n]); var xhr = creatXmlHttpRequest(); var name = document.rgform.username.value; // 设置一个事件的监听函数 xhr.onreadystatechange = function() { if (xhr.readyState == 4) { if (xhr.status == 200 || xhr.status == 304) { var ret = xhr.responseText; var _ret = eval('(' + ret + ')'); // var _ret = JSON.parse(ret); document.getElementById("msg").innerHTML = _ret.tip; if (_ret.success = true) { document.rgform.username.focus(); } } } } // 第二步,准备一个连接请求 xhr.open("get", "checkuserByJSON.jsp?name=" + name, true); // 第三步,发起请求 xhr.send(null); }
POST方式回传json

function checkUserByAjaxPost() { // 第一步,创建xhr对象 var xhr = creatXmlHttpRequest(); var name = document.rgform.username.value; // 第二步,设置一个事件的监听函数 xhr.onreadystatechange = function() { if (xhr.readyState == 4) { if (xhr.status == 200 || xhr.status == 304) { var ret = xhr.responseText; var _ret = eval('(' + ret + ')'); // var _ret = JSON.parse(ret); document.getElementById("msg").innerHTML = _ret.tip; if (_ret.success = true) { document.rgform.username.focus(); alert(xhr.getResponseHeader("Content-Length")); alert(xhr.getResponseHeader("Content-Type")); alert(xhr.getResponseHeader("Date")); alert(xhr.getResponseHeader("Server")); } } } } // 第三步,准备一个POST连接请求 xhr.open("post", "checkuserByJSON.jsp", true); // 使用post方式提交,必须要加上如下一行 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // 第四步,发起请求 xhr.send("name=" + name + "&password=ppppp"); }
POST方式回传xml

function checkUserByAjaxPostXml() { // 第一步,创建xhr对象 var xhr = creatXmlHttpRequest(); var name = document.rgform.username.value; // 第二步,设置一个事件的监听函数 xhr.onreadystatechange = function() { if (xhr.readyState == 4) { if (xhr.status == 200 || xhr.status == 304) { var ret = xhr.responseXML; var successNode = ret.getElementsByTagName("success")[0]; var tipNode = ret.getElementsByTagName("tip")[0]; document.getElementById("msg").innerHTML = tipNode.firstChild.nodeValue; if (successNode.firstChild.nodeValue == true) { document.rgform.username.focus(); } } } } // 第三步,准备一个POST连接请求 xhr.open("post", "checkuserByXML.jsp", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // 第四步,发起请求 xhr.send("name=" + name + "&password=ppppp"); }
返回的的json

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.util.*" %> <% String username = request.getParameter("username"); response.setContentType("application/json;charset=UTF-8"); response.setHeader("pragma","no-cache"); response.setHeader("cache-control","no-cache"); if("admin".equals(username)) { response.getWriter().write("{\"success\":"+true+",\"tip\":\"用户名已存在\"}"); } else { response.getWriter().write("{\"success\":"+false+",\"tip\":\"用户名可以使用\"}"); } %>
返回的xml

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.util.*" %> <% String userId = request.getParameter("name"); response.setContentType("application/xml;charset=UTF-8"); response.setHeader("pragma","no-cache"); response.setHeader("cache-control","no-cache"); if("admin".equals(userId)) { response.getWriter().write("<root><success>true</success><tip>用户名已存在</tip></root>"); } else { response.getWriter().write("<root><success>false</success><tip>用户名可以使用</tip></root>"); } %>
界面

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>register.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="js/register.js"></script> <script type="text/javascript" src="js/jquery-1.5.2.js"></script> <style type="text/css"> #round { padding:10px; width:300px; height:150px; border:1px solid #000; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; margin:10px auto; } #round div.user, #round div.pass { font-size:14px; color:#666; padding:15px 0; text-align:center; position: relative; } #round span{ position: absolute; color:red; top:35px; left:100px; } #round input.text { width:200px; height:25px; border:1px solid #ccc; background:#fff; font-size:14px; } #round .button { padding:5px 0; text-align:center; } </style> </head> <body> <div> <form method="post" action="" > <div> 用户名:<input type="text" onchange="事件调用的方法"> <span></span> </div> <div> 密  码:<input type="password"> </div> <div><input type="button" value="提交"/></div> </form> </div> </body> </html>
效果图


 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  •  Ajax技术分门别类与实现

    Ajax技术分门别类与实现

    2017-10-13 10:02

  • Jquery ajax调用webservice总结

    Jquery ajax调用webservice总结

    2017-10-12 12:39

  • 学员笔记 千锋教育论坛

    学员笔记 千锋教育论坛

    2017-10-12 09:18

  • Xluo 大型Ajax聊天室(ASP.NET+jQuery)

    Xluo 大型Ajax聊天室(ASP.NET+jQuery)

    2017-10-11 15:14

网友点评