不小心栽了XML的坑

最近在做一个聊天系统,前端用的框架conversejs,传输的数据是用XML格式。在测试和预发布上基本都没有问题,可以正常的得到用户列表。

可是今天上线的时候,遇到几个客服的用户列表不能显示,并且报错:

上面一大串代码,实在头大。可是仔细看看最下面有一行报错提示:uncaught badformat

我Google了一下:

得到如下:

大致就是编码错误,有特殊字符:< 和 & 等。接着我又把最上面的那些XML放到格式化工具里:

得到如上的报错,证明里面确实有 & 符号。我放到一些别的在线工具也没报错:

看来还是得多测试几个格式化工具。

最后我又搜了:xml special character

全部内容如下:

Symbol (name)

Escape Sequence

< (less-than)

&#60; or &lt;

> (greater-than)

&#62; or &gt;

& (ampersand)

&#38;

' (apostrophe or single quote)

&#39;

" (double-quote)

&#34;

以上5个特殊字符:

< 、> 、& 、’ 、"

&lt;

The less-than character (<) starts element markup (the first character of a start-tag or an end-tag).

&amp;

The ampersand character (&) starts entity markup (the first character of a character entity reference).

&gt;

The greater-than character (>) ends a start-tag or an end-tag.

&quot;

The double-quote character (") can be symbolised with this character entity reference when you need to embed a double-quote inside a string which is already double-quoted.

&apos;

The apostrophe or single-quote character (') can be symbolised with this character entity reference when you need to embed a single-quote or apostrophe inside a string which is already single-quoted.

解决方法:

  1. 在服务端回传数据时,过滤掉特殊字符,因为这个昵称在前端页面是不显示的。
  2. 服务端转义上面特殊字符

原文发布于微信公众号 - 前端黑板报(FeHeiBanBao)

原文发表时间:2018-06-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LEo的网络日志

shell技巧分享(四)

3548
来自专栏SDNLAB

ONOS集群原理及流程分析

一、ONOS集群原理简介 ONOS是一个分布式的控制器,为了提高数据的读写效率,采用自实现的基于In-Memory的Key-Value数据存储系统。针对实际的需...

3738
来自专栏编程

Linux命令行:find的26个用法示例

作者 | Wray ? Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大...

1878
来自专栏PHP在线

LINUX软链接和硬链接

1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产...

3935
来自专栏Golang语言社区

Linux命令行:find的26个用法示例

作者 | Wray 来自 | http://www.codebelief.com/ Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根...

36413
来自专栏猿人谷

常用命令(ubuntu)

1.打开终端的方法 Ubuntu 中按左侧栏的第一个“面板主页(Dash 主页)”(可以按win键调出),在里面输入terminal可以打开终端,另外打开终端的...

2978
来自专栏蓝天

配置VIM语法高亮及自动缩进

原文:http://blog.sina.com.cn/s/blog_601331150100gjmk.html

1454
来自专栏Golang语言社区

Linux命令行:find的26个用法示例

Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。在这篇文章中,我...

35913
来自专栏LanceToBigData

linux(三)之linux常用命令二

今天就是星期五了,又可以休息两天了。有点小激动,开心。不过还是要加油,因为还有很多东西等着我去学习呢! 七、chmod  作用:修改文件的权限 7.1、命令...

2248
来自专栏IMWeb前端团队

自制前端脚手架

前言 新建项目是很繁琐的一项工作, 要考虑项目目录结构,基础库的配置等等。 前段时间因为需求使用了几款前端脚手架,包括yeoman、imweb-cli, 他们...

3768

扫码关注云+社区

领取腾讯云代金券