用json做的一个无刷新验证

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。

JSON的结构基于下面两点

  • 1. "名称/值"对的集合 不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等
  • 2. 值的有序列表 多数语言中被理解为数组(array)

JSON使用

JSON以一种特定的字符串形式来表示 JavaScript 对象。如果将具有这样一种形式的字符串赋给任意一个 JavaScript 变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的

 

js代码

 

var flag;//后台操作返回值
  var url;//req.open调用的地址
  var tip;//等待提示
  var successTip;//成功返回提示
  var faildTip;//失败返回提示
  var successUrl;//成功发挥后下一个连接地址
  var faildUrl;//失败返回后下一个连接地址
 function jsonUse(surl,stip,ssuccessTip,sfaildTip,ssuccessUrl,sfaildUrl){
  var flag = false;
  url=surl;
  tip=stip;
  successTip= ssuccessTip;
  faildTip = sfaildTip;
  successUrl = ssuccessUrl;
  faildUrl = sfaildUrl;
  alert(url);
  alert(tip);
  alert(faildUrl);
  
  getXMLObject();
 }
 function getXMLObject(){
  alert("aaa");
  if(!window.ActiveXObject){
   req  = new XMLHttpRequest();
  } else{
   req = new ActiveXObject("Microsoft.XMLHttp");
  }
  req.onreadystatechange = callback;
  req.open("get",url);
  req.send();
  }
 function callback(){
 //1-正加载 2-加载完 3-交互中 4-完成
  if(req.readyState == 4){
   if(req.status == 200){
    alert("callback");
    parseMessage();
    alert("callback3");
   }else{
    alert("callback2");
    document.innerTip=tip;
   }
  }
 }

 function parseMessage() {
    var result = req.responseText;
  eval("var j = "+result);
  alert(j.empIDExist);
  if(j.empIDExist){
   alert("parseMessage");
   alert(successTip);
   flag = true;
   alert(successUrl);
   if(successUrl != 'undefined' && successUrl != '')
   {
   window.location.href=successUrl;
   }
  }else{
   flag = false;
   alert(faildTip);
   if(faildUrl != 'undefined' && faildUrl != '')
   {
   window.location.href=faildUrl;
   }
  }
  return flag;
 }

调用

xxx.JSP

JSON传值页面

yy.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%response.setHeader("Cache-Control","no-cache"); %>
{
 flag:<%=request.getAttribute("flag") %>
}

由上面例子总结下

JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。 JSON 帮助分离了验证数据和逻辑。 JSON 帮助为 Web 应用程序提供了 Ajax 的本质。

你可能感兴趣的:(json,javascript,callback,xmlhttprequest,function,语言)