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数据返回格式问题解决的更多相关文章

  1. Ajax-06 Ajax数据交换格式

    1.数据交换格式 服务端返回的数据,在本质上都是字符串,只是原生Ajax 或jQuery Ajax将这些字符串转换为容易理解的各种常用格式. a. Text 文本字符串 b.  XML JavaScr ...

  2. Ajax数据解析格式

    Ajax数据解析格式 一.前言 在服务器端 AJAX 是一门与语言无关的技术.在业务逻辑层使用何种服务器端语言都可以. 从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送.服务器端的编 ...

  3. Java学习-013-文本文件读取实例源代码(两种数据返回格式)

    此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代 ...

  4. GoWeb开发_Iris框架讲解(二):Get、Post、Put等请求及数据返回格式

    数据请求方式的分类 所有的项目中使用的请求都遵循HTTP协议标准,HTTP协议经过了1.0和1.1两个版本的发展. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP ...

  5. PHP IE9 AJAX success 返回 undefined 问题解决

    jquery的AJAX返回结果为undefined,并且有“由于出现错误c00ce56e”的错误提示.这个问题是由于IE9不能解析其他编码而产生的.解决这个问题之需要按照W3C规范,声明一下编码为ut ...

  6. Ajax中返回数据的格式

    Ajax中常见的返回数据的格式有三种:分别为文本,XML和JSON 返回的文本格式我们在上一堂课Ajax基础介绍中已经介绍过了 Ajax.php Form.html:通过Ajax对象的response ...

  7. ajax访问服务器返回json格式

    使用ajax访问服务器返回多条数据,比如返回一个表中的所有数据,页面该如何处理呢?如何获取数据呢?一直不会用ajax返回json格式,今天研究了下,分享给大家~ 首先需要引用服务,点击项目右键,添加引 ...

  8. Asp.net Core WebApi 支持json/xml格式的数据返回

    Asp.net core 在做webapi项目的时候,默认是只返回json格式的数据的,如果想要开启xml数据返回,需要在startup里配置如下: public void ConfigureServ ...

  9. AJAX制作JSON格式的实时更新数据的方法

    之前有写过这样的文章,但是出现了几个问题,第一,如果每秒都像数据库发送请求势必会造成服务器的压力过大,第二,如果使用JS的话,是不可以取得系统时间的,因为JS运行在客户端,所以只能取得客户端时间, 如 ...

随机推荐

  1. Jenkins持续集成环境, 如何自定义 maven 仓库

    最后的解决方法: job-->configure-->Build-->Goals and options: clean package -Dmaven.repo.local=D:\d ...

  2. pupeteer初体验

    官方文档: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagescreenshotoptions puppet ...

  3. Java线程池使用和常用参数

    多线程问题: 1.java中为什么要使用多线程使用多线程,可以把一些大任务分解成多个小任务来执行,多个小任务之间互不影像,同时进行,这样,充分利用了cpu资源. 2.java中简单的实现多线程的方式 ...

  4. 移动端meta标签缓存设置

    1.<meta charset="utf-8"> 2.<meta content="width=device-width, initial-scale= ...

  5. Python中enumerate用法详解

    enumerate()是python的内置函数.适用于python2.x和python3.xenumerate在字典上是枚举.列举的意思enumerate参数为可遍历/可迭代的对象(如列表.字符串)e ...

  6. Oracle中的4大空值处理函数用法举例

    nvl(exp1,exp2):                           如果exp1为空,则返回exp2:否则返回exp1nvl2(exp1,exp2,exp3):             ...

  7. Java程序员的现代RPC指南

    Java程序员的现代RPC指南 1.前言 1.1 RPC框架简介 最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦.于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大 ...

  8. Hexo 简明教程

    概述 对于个人独立博客的搭建,或者一些产品网站的介绍我个人比较推崇直接用静态网站生成器来完成这个事情,对于,静态网页部署方便,浏览速度快. 以下为部分静态网站生成器简要列表: Ruby Jekyll ...

  9. VBA find方法

    Sub Sample() Dim sfzs As New Collection Dim ws, wbs, dbs As Worksheet Dim r As Long Set ws = ThisWor ...

  10. SQL语言四大类

    SQL语言四大类   SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL. 数据查询语言DQL   数据查询语言DQL基本结构是由SELECT子句, ...