换行符在ajax中返回json,eval时发生的 Unexpected token ILLEGAL

用户如果输入了换行在数据中记录为‘空格’,但不是真正的空格。

程序前台采用ajax和json返回数据绑定时会 出现 Unexpected token ILLEGAL

例子:

在sql中存储为下图

在“)”与“导”,"林"与"pet"之间实际保存的是换行符。

$.ajax({
        url: ‘‘,
        type: ‘POST‘,
        data: { },
        dataType: ‘text‘,
        success: function (dt) {
            eval("dt=" + dt);
        },
        error: function () {
        }
    });

在eval时就会出现Unexpected token ILLEGAL。经验告诉我们Unexpected token ILLEGAL 就是一些格式、标签、语法等一些的不正确,不完整

我们在调试的浏览器中点击错误后面的**.js进去,看到的json没问题。别急,我们把json复制出来。

在bejson网站格式化一下,格式化也没问题。通过了。

问题出在哪呢,仔细看,你会发现在“)”与“导”,"林"与"pet"之间多了\n——文本换行符。

它就是罪魁祸首。

OK,找到了问题,我们就解决它,方法很简单

在存储过程中replace掉

你的字段为varchar:REPLACE( 字段名, CHAR(10), ‘<br/>‘) AS [别名]

你的字段为text,ntext:REPLACE(CONVERT(VARCHAR(MAX), 字段名), CHAR(10), ‘<br/>‘) AS [别名]

ps:char(10)换行键 \nchar(13)回车键 \r
时间: 2024-08-11 01:23:44

换行符在ajax中返回json,eval时发生的 Unexpected token ILLEGAL的相关文章

SpringMVC3中返回json字符串时500 Internal Server Error的处理方案

搭建 Spring3+MyBatis+Rest+BootStrap+JBPM项目环境后,测试发现了一个操蛋的问题.使用Spring MVC的自动类型转换为JSON时,后台数据List/Map获取完全正常,可是JS获取data报500错误.后台无任何异常信息. 问题解决思路:后台数据操作正常,数据返回前端时候异常,问题集中在Spring的jackson json转换上.而Spring用了第三方的Jackson Json数据转换,异常信息的获取需要靠它,代码中加入如下部分: 1 /** 2 * 查询

Ajax调用返回json,xml数据类型(0517--pm)

一.返回Json型数据: 1.主页面 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <met

jquery ajax调用返回json格式数据处理

Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) var html = $.ajax({ url: "some.php", async: false }).responseText; 返回json数组取条数用result.length <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs"

ajax请求返回Json字符串运用highcharts数据图表展现数据

[1].[图片] Json字符串和highcharts数据图表展现.jpg 跳至 [1] [2] [2].[代码] Json字符串和highcharts数据图表展现 跳至[1] [2] 001 /* 002 * Filename: OQtyOrPriceReport.js 003 * Description:客户订单数量和价格报表分析 004 * Created: 2013.11.14 005 * Author : liangjw 006 * Company:Copyright (C) 2013

SpringMVC中返回JSON时乱码的解决方案

springMVC中返回JSON会出现乱码,解决如下: produces = "text/html;charset=UTF-8" @ResponseBody @RequestMapping(value = { "searchUsers.htm" },method = RequestMethod.POST,produces = "text/html;charset=UTF-8") public String searchUsers(@ModelAt

解决在IE中返回JSON格式的数据时提示下载的问题

如题,以ASP.NET MVC为例,解决办法如下: 控制器中: public JsonResult Test() { return Json(json, "text/html"); } 视图中: $.post("/controller/action/", function (data) { data = JSON.parse(data); }); 解决在IE中返回JSON格式的数据时提示下载的问题

Spring3.2中返回JSON去掉Bean中NULL值

在Spring3.2中返回Json字符串,过滤掉不需要的Bean中属性对应Json中key的value=null的值,可以同过在Bean中加入注解的方式来过滤 使用jackson-all-1.8.1.jar包,在需要序列化输出Json的类上添加如***解 import org.codehaus.jackson.map.annotate.JsonSerialize; @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) public cl

Ajax调用返回json数组,对象 (JSONArray.fromObject)

JSONArray和JSONObject的详细使用:http://blog.csdn.net/yangbobo1992/article/details/8350765 /** * ajax调用返回json数组 * @param list */ public void printList(List<?> list){ HttpServletResponse response = ServletActionContext.getResponse(); //获取response实例 response

采用EXTJS ajax 解析返回json

片段主题:采用EXTJS ajax 解析返回json 知识分类:EXTJS 记录时间: 20150708 功能描述:点击图标根据ID ,AJAX提交后返回json 得到结果,显示图片. 学习心得:初学特别注意, 再想返回JSON 获得数据的情况下必须 使用ajax 的属性 success: function (data){} 来获取否者将只能的到返回的对象(object) ,然而并不会得到json数据(换句话说也就是得不到值). 片段代码: { iconCls : 'silk-config',