服务端返回的json数据,导致前端报错的原因及解决方法
前言
最近在开发的过程中遇到了一个问题:后端传过来的json字符串不是标准的json字符串
导致报错的原因
后端传过来的json字符串中包含一些不标准的字符或错误的引号嵌套
1)\n
2) \r
3) 双引号
4)单引号
5)双引号包含双引号
6)单引号包含单引号
解决办法
1)\n
前端:替换成\\n
2) \r
前端:替换成\\r
3) 双引号
前端:替换成"
4)单引号
前端:替换成'
5)双引号包含双引号
前端:双引号包含单引号
6)单引号包含单引号
前端:单引号包含双引号
当然我们需要后端同时配合处理
可能存在问题
\\n失效,在页面并没有换行
解决办法:
方法一:我们可以在渲染页面前找到\n将其替换成<br/>
this.termUse=data.replace(/\n/g,'<br/>');
this.renderFloorContent(this.termUse);
补充:因为不同编辑输出的回车换行不太一样,如果你发现替换\n无效果,可以试着换成\r或者\r\n再看结果,总有一种可以替换成功
方法二:我们可以在渲染页面前需要循环字符换,将等于\n的字符串替换成“<br/>”,重组字符串
var i;
var result = "";
var c;
for (i = 0; i < str.length; i++) {
c = str.substr(i, 1);
if ( c == "\n")
result = result + "</br>";
else if (c != "\r")
result = result + c;
}
方法二能用,但太麻烦不推荐
额外参考
转义字符(\\\\\\\\)对JavaScript中JSON.parse的影响概述
服务端返回的json数据,导致前端报错的原因及解决方法的更多相关文章
- android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据
补充:关于PHP服务端可能出现的问题: 如果你刚好也像我一样,用php实现的服务端程序,采用的是apache服务器,那么虚拟主机的配置可能会影响到android应用的调试!! 在android应用中访 ...
- 对Ajax返回的json数据做处理报错
这个错误出现的原因是我再返回数据为json时,我页面的Ajax没有指定dataType: 'json'
- Canvas引入跨域的图片导致toDataURL()报错的问题的解决
本文介绍了Canvas引入跨域的图片导致toDataURL()报错的问题的解决,分享给大家,具体如下: [场景] 用户打开网页,则请求腾讯COS(图片服务器)上的图片js代码.使用canvas绘图. ...
- 关于前端ajax请求获取数据成功之后无法操作数据的原因及解决方法
前言:做项目的时候我用ajax请求json数据,遍历使用数据时却发现页面无响应.关于这个问题今天有个朋友又问了我一次,记录一下.由于我没有记录,这里用我朋友的图片. 代码现象: 这里他是使用alert ...
- 实现客户端与服务端之间传输json数据
步骤:创建数据库,并创建表.利用myeclipse创建新工程,利用JDBC实现java操纵数据库.实现客户端类,服务端类.具体实现:创建数据表create table usertable( usern ...
- 服务端提供的JSON数据接口与用户端接收解析JSON数据
JSON格式的服务接口:http://www.cnblogs.com/visec479/articles/4118338.html 首先来了解下JSON格式解析 json结构的格式就是若干个 键/值( ...
- Node.js 使用jQuery取得Nodejs http服务端返回的JSON数组示例
server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http" ...
- Node.js 使用jQuery取得Nodejs http服务端返回的JSON对象示例
server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http" ...
- Node.js 使用angularjs取得Nodejs http服务端返回的JSON数组示例
server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http" ...
随机推荐
- 死磕 java集合之HashSet源码分析
问题 (1)集合(Collection)和集合(Set)有什么区别? (2)HashSet怎么保证添加元素不重复? (3)HashSet是否允许null元素? (4)HashSet是有序的吗? (5) ...
- ubuntu文件系统分区调整(解决目录空间不足、分配不均问题)
1. 安装 tuxboot (ubuntu下烧写工具) sudo apt-add-repository ppa:thomas.tsai/ubuntu-tuxboot sudo apt-get upda ...
- word中如何只修改英文的颜色
替换->更多->使用通配符,查找[a-zA-Z],替换为^&,字体选红色
- Docker最全教程——数据库容器化(十)
终于按时完成第二篇.本来准备着手讲一些实践,但是数据库部分没有讲到,部分实践会存在一些问题,于是就有了此篇以及后续——数据库容器化.本篇将从SQL Server容器化实践开始,并逐步讲解其他数据库的容 ...
- 在线生成二维码的API接口
现在很多大网站都有这样的一个功能,使用手机扫描一下网页上的二维码便可快速在手机上访问网站.想要实现这样的功能其实很简单,下面麦布分享几个在线生成网址二维码的API接口.都是采用http协议接口,无需下 ...
- 为 Eureka 服务注册中心实现安全控制
上一篇Eureka 实现微服务注册发现讲了用 Eureka 实现单体版的服务注册与发现.因为本篇是在上一篇的基础上的一点扩充,所以读此篇之前要保证看了上一篇. Eureka 如果不加安全控制,会存在下 ...
- C# 以函数Action/Func/Task作为方法参数
以Action.Func.Task作为方法参数,mark一下 以Action为参数 public void TestAction() { //Action参数 ExecuteFunction(() = ...
- 现代Java进阶之路必备技能——2019 版
Java技术的学习阶段有三 第1个是java基础,比如对集合类,并发,IO,JVM,内存模型,泛型,异常,反射,等有深入了解. 第2个是全面的互联网技术相关知识,比如redis,mogodb,ngin ...
- elasticsearch health yellow
csdn博客地址(已测试过):https://blog.csdn.net/yangyangrenren/article/details/81100836 官方地址:https://www.elasti ...
- solr8.0的简单搭建(一)
第一步,下载solr 进入solr官网进行下载:http://lucene.apache.org/solr/ 第二步: 将解压的solr放到自己指定的文件夹 第三步: 由于solr有自带服务器,所以可 ...