最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Ajax三种实现方法与AJAX解析JSON

来源:动视网 责编:小采 时间:2020-11-27 19:52:09
文档

Ajax三种实现方法与AJAX解析JSON

Ajax三种实现方法与AJAX解析JSON:这次给大家带来Ajax三种实现方法与AJAX解析JSON,Ajax三种实现方法与AJAX解析JSON的注意事项有哪些,下面就是实战案例,一起来看一下。准备:1、 prototype.js2、 jquery1.3.2.min.js3、 json2.js后台处理程序(Servlet),访问路径servlet
推荐度:
导读Ajax三种实现方法与AJAX解析JSON:这次给大家带来Ajax三种实现方法与AJAX解析JSON,Ajax三种实现方法与AJAX解析JSON的注意事项有哪些,下面就是实战案例,一起来看一下。准备:1、 prototype.js2、 jquery1.3.2.min.js3、 json2.js后台处理程序(Servlet),访问路径servlet


这次给大家带来Ajax三种实现方法与AJAX解析JSON,Ajax三种实现方法与AJAX解析JSON的注意事项有哪些,下面就是实战案例,一起来看一下。

准备:

1、 prototype.js
2、 jquery1.3.2.min.js
3、 json2.js

后台处理程序(Servlet),访问路径servlet/testAjax:

Java代码

package ajax.servlet; 
import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
/** 
 * Ajax例子后台处理程序 
 * @author bing 
 * @version 2011-07-07 
 * 
 */ 
public class TestAjaxServlet extends HttpServlet { 
 public void doGet(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 response.setContentType("text/html;charset=utf-8"); 
 PrintWriter out = response.getWriter(); 
 String name = request.getParameter("name"); 
 String age = request.getParameter("age"); 
 System.out.println("{\"name\":\"" + name + "\",\"age\":\"" + age + "\"}"); 
 out.print("{\"name\":\"" + name + "\",\"age\":" + age + "}"); 
 out.flush(); 
 out.close(); 
 } 
 public void doPost(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException { 
 doGet(request,response); 
 } 
}

TestAjaxServlet接收两个参数:name和age,并返回一个以JSON格式编写的字符串。

前台页面参数输入界面:

Html代码

<p id="show">显示区域</p> 
<p id="parameters"> 
 name:<input id="name" name="name" type="text" /><br /> 
 age:<input id="age" name="age" type="text" /><br /> 
</p>

一、prototype实现

Html代码

<script type="text/javascript" src="prototype.js"></script> 
 <script type="text/javascript"> 
 function prototypeAjax() 
 { 
 var url = "servlet/testAjax";//请求URL 
 var params = Form.serialize("parameters");//提交的表单 
 var myAjax = new Ajax.Request( 
 url,{ 
 method:"post",// 请求方式 
 parameters:params, // 参数 
 onComplete:pressResponse, // 响应函数 
 asynchronous:true 
 }); 
 $("show").innerHTML = "正在处理中..."; 
 } 
 function pressResponse(request) 
 { 
 var obj = request.responseText; // 以文本方式接收 
 $("show").innerHTML = obj; 
 var objJson = request.responseText.evalJSON(); // 将接收的文本用解析成Json格式 
 $("show").innerHTML += "name=" + objJson['name'] + " age=" + objJson['age']; 
 } 
</script> 
<input id="submit" type="button" value="提交" onclick="prototypeAjax()" /><br />

在prototype的Ajax实现中,用evalJSON方法将字符串转换成JSON对象。

二、jquery实现

Html代码

<script type="text/javascript" src="jquery-1.3.2.min.js"></script> 
<script type="text/javascript" src="json2.js"></script> 
<input id="submit" type="button" value="提交" /><br /> 
<script type="text/javascript"> 
 function jqueryAjax() 
 { 
 var user={"name":"","age":""}; 
 user.name= $("#name").val(); 
 user.age=$("#age").val(); 
 var time = new Date(); 
 $.ajax({ 
 url: "servlet/testAjax?time="+time, 
 data: "name="+user.name+"&age="+user.age, 
 datatype: "json",//请求页面返回的数据类型 
 type: "GET", 
 contentType: "application/json",//注意请求页面的contentType 要于此处保持一致 
 success:function(data) {//这里的data是由请求页面返回的数据 
 var dataJson = JSON.parse(data); // 使用json2.js中的parse方法将data转换成json格式 
 $("#show").html("data=" + data + " name="+dataJson.name+" age=" + dataJson.age); 
 }, 
 error: function(XMLHttpRequest, textStatus, errorThrown) { 
 $("#show").html("error"); 
 } 
 }); 
 } 
 $("#submit").bind("click",jqueryAjax); // 绑定提交按钮 
 </script>

刚接触jQuery,在json的处理上借助了json2.js。还请前辈们指教。

三、XMLHttpRequest实现

Html代码

<script type="text/javascript"> 
 var xmlhttp; 
 function XMLHttpRequestAjax() 
 { 
 // 获取数据 
 var name = document.getElementById("name").value; 
 var age = document.getElementById("age").value; 
 // 获取XMLHttpRequest对象 
 if(window.XMLHttpRequest){ 
 xmlhttp = new XMLHttpRequest(); 
 }else if(window.ActiveXObject){ 
 var activxName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; 
 for(var i = 0 ; i < activexName.length; i++){ 
 try{ 
 xmlhttp = new ActiveXObject(activexName[i]); 
 break; 
 }catch(e){} 
 } 
 } 
 xmlhttp.onreadystatechange = callback; //回调函数 
 var time = new Date();// 在url后加上时间,使得每次请求不一样 
 var url = "servlet/testAjax?name="+name+"&age="+age+"&time="+time; 
 xmlhttp.open("GET",url,true); // 以get方式发送请求 
 xmlhttp.send(null); // 参数已在url中,所以此处不需要参送 
 } 
 function callback(){ 
 if(xmlhttp.readyState == 4){ 
 if(xmlhttp.status == 200){ // 响应成功 
 var responseText = xmlhttp.responseText; // 以文本方式接收响应信息 
 var userp = document.getElementById("show"); 
 var responseTextJson = JSON.parse(responseText); // 使用json2.js中的parse方法将data转换成json格式 
 userp.innerHTML=responseText + " name=" + responseTextJson.name + " age=" + responseTextJson.age; 
 } 
 } 
 } 
</script> 
<input id="submit" type="button" value="提交" onclick="XMLHttpRequestAjax()" /><br />

ps:字符串转换成JSON的三种方式

采用Ajax的项目开发过程中,经常需要将JSON格式的字符串返回到前端,前端解析成JS对象(JSON )。
ECMA-262(E3) 中没有将JSON概念写到标准中,但在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。

1,eval方式解析,恐怕这是最早的解析方式了。

function strToJson(str){
 var json = eval('(' + str + ')');
 return json;
}

记得str两旁的小括号哦。

2,new Function形式,比较怪异哦。

function strToJson(str){
 var json = (new Function("return " + str))();
 return json;
}

IE6/7中当字符串中含有换行(\n)时,new Function不能解析,但eval却可以。

3,使用全局的JSON对象。

function strToJson(str){
 return JSON.parse(str);
}

目前IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已实现了该方法。

使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下

var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error

name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

jQuery做出垂直半透明手风琴效果

jquery实现导航菜单鼠标提示功能

文档

Ajax三种实现方法与AJAX解析JSON

Ajax三种实现方法与AJAX解析JSON:这次给大家带来Ajax三种实现方法与AJAX解析JSON,Ajax三种实现方法与AJAX解析JSON的注意事项有哪些,下面就是实战案例,一起来看一下。准备:1、 prototype.js2、 jquery1.3.2.min.js3、 json2.js后台处理程序(Servlet),访问路径servlet
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top