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

Posted ghelement

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了换行符在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 [别名] 

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

ps:
char(10)换行键 \n
char(13)回车键 \r

以上是关于换行符在ajax中返回json,eval时发生的 Unexpected token ILLEGAL的主要内容,如果未能解决你的问题,请参考以下文章

Ajax请求 返回数据处理方法 JSON.parse( ) 与 eval( )的区别

ajax请求json数据返回啥类型

ajax返回json处理

thinkphp中AJAX返回ajaxReturn()方法分析

ajax 返回数值 分段 显示 怎么做

使用 Json.Net 处理数据中的换行符