Ajax数据返回格式问题解决
Ajax数据返回格式问题解决
服务端返回的数据格式为:
response.setContentType("text/xml;charset=utf-8");
设置发送到客户端的响应的内容类型为xml格式、编码方式为UTF-8的文本内容。
客户端接收代码为:
if (req.readyState == 4) {
if (req.status == 200) {
var city = req.responseXML.getElementsByTagName("city");
.......
}
}
通过状态判断后获取服务端返回文档中的指定标签内容。但是通过浏览器出现错误提示,如下:
MyHtml.html:27 Uncaught TypeError: Cannot read property 'getElementsByTagName' of null
通过调试语句alert(req.responseXML);窗口输出已下内容:
可见服务端返回的内容为空。但是通过调试语句alert(req.responseText);却输出了服务端返回的内容,如下:
但是在Chrome中以上信息不会显示,因为在遇到上面的错误时就结束了,不会继续执行下面的代码。貌似这种机制更安全些。
转换一下思路,既然可以获取到文本格式,就可以实现将文本格式的xml文档转换为xml文档,转换代码如下:
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(req.responseText.toString(), "text/xml");
var city = xmlDoc.getElementsByTagName("city");
这样就可以正确获取到节点值。效果图如下:
附(response.setContentType()的String参数及对应类型)
<option value="image/bmp">BMP</option> <option value="image/gif">GIF</option> <option value="image/jpeg">JPEG</option> <option value="image/tiff">TIFF</option> <option value="image/x-dcx">DCX</option> <option value="image/x-pcx">PCX</option> <option value="text/html">HTML</option> <option value="text/plain">TXT</option> <option value="text/xml">XML</option> <option value="application/afp">AFP</option> <option value="application/pdf">PDF</option> <option value="application/rtf">RTF</option> <option value="application/msword">MSWORD</option> <option value="application/vnd.ms-excel">MSEXCEL</option> <option value="application/vnd.ms-powerpoint">MSPOWERPOINT</option> <option value="application/wordperfect5.1">WORDPERFECT</option> <option value="application/vnd.lotus-wordpro">WORDPRO</option> <option value="application/vnd.visio">VISIO</option> <option value="application/vnd.framemaker">FRAMEMAKER</option> <option value="application/vnd.lotus-1-2-3">LOTUS123</option>
参考文献
1.http://j2ees.iteye.com/blog/2034371
2.http://blog.sina.com.cn/s/blog_a03d702f010143tw.html
美文美图
Ajax数据返回格式问题解决的更多相关文章
- Ajax-06 Ajax数据交换格式
1.数据交换格式 服务端返回的数据,在本质上都是字符串,只是原生Ajax 或jQuery Ajax将这些字符串转换为容易理解的各种常用格式. a. Text 文本字符串 b. XML JavaScr ...
- Ajax数据解析格式
Ajax数据解析格式 一.前言 在服务器端 AJAX 是一门与语言无关的技术.在业务逻辑层使用何种服务器端语言都可以. 从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送.服务器端的编 ...
- Java学习-013-文本文件读取实例源代码(两种数据返回格式)
此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代 ...
- GoWeb开发_Iris框架讲解(二):Get、Post、Put等请求及数据返回格式
数据请求方式的分类 所有的项目中使用的请求都遵循HTTP协议标准,HTTP协议经过了1.0和1.1两个版本的发展. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP ...
- PHP IE9 AJAX success 返回 undefined 问题解决
jquery的AJAX返回结果为undefined,并且有“由于出现错误c00ce56e”的错误提示.这个问题是由于IE9不能解析其他编码而产生的.解决这个问题之需要按照W3C规范,声明一下编码为ut ...
- Ajax中返回数据的格式
Ajax中常见的返回数据的格式有三种:分别为文本,XML和JSON 返回的文本格式我们在上一堂课Ajax基础介绍中已经介绍过了 Ajax.php Form.html:通过Ajax对象的response ...
- ajax访问服务器返回json格式
使用ajax访问服务器返回多条数据,比如返回一个表中的所有数据,页面该如何处理呢?如何获取数据呢?一直不会用ajax返回json格式,今天研究了下,分享给大家~ 首先需要引用服务,点击项目右键,添加引 ...
- Asp.net Core WebApi 支持json/xml格式的数据返回
Asp.net core 在做webapi项目的时候,默认是只返回json格式的数据的,如果想要开启xml数据返回,需要在startup里配置如下: public void ConfigureServ ...
- AJAX制作JSON格式的实时更新数据的方法
之前有写过这样的文章,但是出现了几个问题,第一,如果每秒都像数据库发送请求势必会造成服务器的压力过大,第二,如果使用JS的话,是不可以取得系统时间的,因为JS运行在客户端,所以只能取得客户端时间, 如 ...
随机推荐
- display:none
$("#loadimg").css("display",""); <span id="loadimg" clas ...
- 《深入理解mybatis原理》 MyBatis的架构设计以及实例分析
作者博客:http://blog.csdn.net/u010349169/article/category/2309433 MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简 ...
- php中AJAX请求中使用post和get请求的区别
之前使用这两个请求的时候,主要从几个方面考虑: 1.语义,get就是从服务器获取,一般就是获取/查询资源信息.post就是提交给服务器,一般就是更新资源信息. 2.请求文件大小,get一般只有2k这样 ...
- HTML标签部分(块级/行级)
一.基本块级标签 1.HTML标签的分类: a.块级标签:显示为块状,独占一行,自动换行. b.行级标签:在一行中,从左往右依次排列,不会自动换行. 2.h标签(标题标签) h标签 ...
- Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题
Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...
- 解决使用web开发手机网页关于分辨率被缩放的坑
问题的产生 因为各方面原因,要用网页做界面,开发一个APP.内核使用的是腾讯的x5内核. 把外壳交给前端和设计测试的时候,都汇报:状态栏的颜色太不搭配了,要求可修改 遂启用了安卓4.4版本开始支持的沉 ...
- 跟着小菜学习RabbitMQ启动和基础(系列一)
前言 今天开始我们正式进入RabbitMQ系列学习,在这系列博客中也会发表.NET Core和EF Core文章,网上关于RabbitMQ例子比比皆是,我将综合网上所提供的信息并加上我个人的理解来详细 ...
- Node.js URL
稳定性: 3 - 稳定 这个模块包含分析和解析 URL 的工具.调用 require('url') 来访问模块. 解析 URL 对象有以下内容,依赖于他们是否在 URL 字符串里存在.任何不在 URL ...
- Oracle数据库常用命令记录
1.Sql建表 CREATE TABLE AAABBBCCCDDD( ID ) primary key, AAAAAAAA ) not NULL, BBBBBBBB ), CCCCCCCC ), DD ...
- Spring动态切换多数据源解决方案
Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...