如果响应数据是以html的形式发出来的,即
response.setContentType("text/html;charset=utf-8");
那么一般用下面这种方式,但是要注意用eval()函数将responseText转换成一个json表达式,如下标红代码
1 //创建回调函数,根据相应状态动态更新页面 2 var xhr = getXMLHttpRequest(); //创建XMLHttpRequest对象 3 4 //通过实践调用回调函数处理相应结果 5 xhr.onreadystatechange = function(){ 6 7 if(xhr.readyState == 4){ 8 if(xhr.status == 200){ 9 var str = xhr.responseText; 10 11 //将str强制转换成一个表达式 12 str = eval(xhr.responseText); 13 for(var i = 0; i < str.length; i++){ 14 var option = "<option>"+str[i].name+"</option>"; 15 $("#select").append(option); 16 } 17 } 18 } 19 } 20 21 //与服务器建立连接 22 xhr.open("get", "${pageContext.request.contextpath}/provinceServlet"); 23 24 //发送请求 25 xhr.send(null);
当然,这里获取到json表达式,后可以jquey方式遍历,如下标红代码
1 //创建回调函数,根据相应状态动态更新页面 2 var xhr = getXMLHttpRequest(); //创建XMLHttpRequest对象 3 4 //通过实践调用回调函数处理相应结果 5 xhr.onreadystatechange = function(){ 6 7 if(xhr.readyState == 4){ 8 if(xhr.status == 200){ 9 var str = xhr.responseText; 10 //将str强制转换成一个表达式 11 str = eval(xhr.responseText); 12 13 $(str).each(function(){ 14 var option = "<option>"+this.name+"</option>"; 15 $("#select").append(option); 16 }); 17 } 18 } 19 } 20 21 //与服务器建立连接 22 xhr.open("get", "${pageContext.request.contextpath}/provinceServlet"); 23 24 //发送请求 25 xhr.send(null);
如果后台响应的是以application/json方式发出的,即
response.setContentType("application/json;charset=utf-8")
那么运用jquery可以进一步简化代码,代码如下:
1 $.get("provinceServlet", {}, function(data){ 2 $(data).each(function(){ 3 var option = "<option>"+this.name+"</option>" ; 4 $("#select").append(option); 5 }); 6 });
顺便提一句:
将普通对象封装成json的方法是JSONOject.fromObject(obj).toString();
如果是将list对象封装成json,那么方法是JSONArray.fromObject(list).toString();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。