如果响应数据是以html的形式发出来的,即

response.setContentType("text/html;charset=utf-8");

那么一般用下面这种方式,但是要注意用eval()函数将responseText转换成一个json表达式,如下标红代码

 //创建回调函数,根据相应状态动态更新页面
var xhr = getXMLHttpRequest(); //创建XMLHttpRequest对象 //通过实践调用回调函数处理相应结果
xhr.onreadystatechange = function(){ if(xhr.readyState == ){
if(xhr.status == ){
var str = xhr.responseText; //将str强制转换成一个表达式
12 str = eval(xhr.responseText);
for(var i = ; i < str.length; i++){
var option = "<option>"+str[i].name+"</option>";
$("#select").append(option);
}
}
}
} //与服务器建立连接
xhr.open("get", "${pageContext.request.contextPath}/provinceServlet"); //发送请求
xhr.send(null);

当然,这里获取到json表达式,后可以jquey方式遍历,如下标红代码

 //创建回调函数,根据相应状态动态更新页面
var xhr = getXMLHttpRequest(); //创建XMLHttpRequest对象 //通过实践调用回调函数处理相应结果
xhr.onreadystatechange = function(){ if(xhr.readyState == ){
if(xhr.status == ){
var str = xhr.responseText;
//将str强制转换成一个表达式
str = eval(xhr.responseText); $(str).each(function(){
14 var option = "<option>"+this.name+"</option>";
15 $("#select").append(option);
16 });
}
}
} //与服务器建立连接
xhr.open("get", "${pageContext.request.contextPath}/provinceServlet"); //发送请求
xhr.send(null);

如果后台响应的是以application/json方式发出的,即

response.setContentType("application/json;charset=utf-8")

那么运用jquery可以进一步简化代码,代码如下:
  $.get("provinceServlet", {}, function(data){
$(data).each(function(){
var option = "<option>"+this.name+"</option>" ;
$("#select").append(option);
});
});

顺便提一句:

将普通对象封装成json的方法是JSONOject.fromObject(obj).toString();

如果是将list对象封装成json,那么方法是JSONArray.fromObject(list).toString();

ajax异步获取请求,获得json数组后对数组的遍历的更多相关文章

  1. ajax异步获取数据后动态向表格中添加数据(行)

    因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 <!doctype html> ...

  2. jquery.ajax异步发送请求的简单测试

    使用ajax异步发送请求到一般处理程序,判断输入的用户名和密码 1.添加Html页面,导入jquery 2.编写js代码和页面标签 <script type="text/javascr ...

  3. 异步POST请求解析JSON

    异步POST请求解析JSON 一.创建URL NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/order ...

  4. dedecms Ajax异步获取文章列表

    dedecms如何通过ajax(异步)动态获取文章列表数据. 第一步添加:服务端(PHP)代码 打开plus目录下面的list.php文件,在12行代码下面添加以下代码: if(isset($_GET ...

  5. ajax和axios请求本地json数据对比

    AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进 ...

  6. treeTable的使用(ajax异步获取数据,动态渲染treeTable)

    一.展示效果(treetable基本样式https://www.cnblogs.com/shuihanxiao/p/10413454.html) 二.html文件(若一个页面又多个treetable, ...

  7. Ajax - 异步调用后台程序 -JSON

    在ASP.NET使用ajax时基本上每个操作都要新建一个.ashx处理程序,页面很多,每个页面的操作也很多,这样的话项目就会产生新建很多很多的.ashx页面,能不能把方法写在后台中,然后Jquery直 ...

  8. Ajax异步获取html数据中包含js方法无效的解决方法

    页面上使用js写了一个获取后台数据的方法 function data() { var tab = $("#dic") $.ajax({ url: '../demo.ashx?met ...

  9. 通过Ajax——异步获取相关问题解答

    问题呈现: 解决方案: dataType定义的是接收的值的类型,及controller控制器返回什么类型的值,这就写成什么类型, 我写的是return content("...") ...

随机推荐

  1. 每个Web开发者都应该知道的SOLID原则

    面向对象的编程并不能防止难以理解或不可维护的程序.因此,Robert C. Martin 制定了五项指导原则,使开发人员很容易创建出可读性强且可维护的程序.这五项原则被称为 S.O.L.I.D 原则. ...

  2. 【32】Padding(填充)原理讲解

    Padding 为了构建深度神经网络,你需要学会使用的一个基本的卷积操作就是padding,让我们来看看它是如何工作的.   我们在之前笔记中看到,如果你用一个3×3的过滤器卷积一个6×6的图像,你最 ...

  3. Codeforces Round #592 (Div. 2) E

    给你一个数组,你最多可以进行k次操作,每次操作可以使一个数+1或者-1,问操作之后数组的极差最小可能是多少 利用map来模拟移动,可以观察到每次应该选择数量少的一组数让他们进行移动是最优的 int m ...

  4. Jungle Roads HDU - 1301 prim

    #include<stdio.h> #include<string.h> #include<iostream> using namespace std; ; int ...

  5. ansible-yaml语法

    1. 基础语法 - yaml结果通过空格来展示 - 数组使用"- "来表示 //注意:-后边要有一个空格 - 键值对使用": "来表示 //注意::后边要有一个 ...

  6. 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(6.5-加-8.2-加-8.3)End-to-end_Data_Protection

    6.5 End-to-end Protection Information 端到端保护信息 包含数据转存的命令可以使用端到端数据保护.在这些命令内部[位于Command Dword 12 的 [29: ...

  7. PHPMailer发送邮件遇坑小记

    一:phpmailer发送邮件成功了 数据库发送状态也更改 但是用户就是没收到邮件. 出现原因:发送邮件太多 导致邮箱服务器被腾讯封了 发送的邮件统统进入了邮件服务器的草稿箱里. 解决方案: 重新修改 ...

  8. rtp传输h264

    ---恢复内容开始--- 基本概念的理解 H.264的主要目标:1.高的视频压缩比2.良好的网络亲和性 解决方案:VCL video coding layer 视频编码层NAL network abs ...

  9. Eclispe WEB项目 转到 IDEA 后无法部署问题

    IDEA是个强大的IDE  这个就不用多说了 Eclispe 的Web项目  转到IDEA之后,开始部署会出现大量的问题 项目从SVN下载下来的时候,大概就是这个样 第一步是先设置  项目结构  也就 ...

  10. 流量难、获客难、增长难?增长黑客思维“解救”B端业务

    随着市场竞争的不断加剧,流量越来越贵.留存与转化越来越难,实现用户和业务的增长并不容易.无论是B2C 还是B2B的企业,都可能遇到增长的挑战.对于营销团队而言,传统的漏斗式营销思维已有些力不从心,需要 ...