zoukankan      html  css  js  c++  java
  • 换行符在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"之间多了 ——文本换行符。

    它就是罪魁祸首。

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

    在存储过程中replace掉

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

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

    ps:
    char(10)换行键
    char(13)回车键
  • 相关阅读:
    Redis 主从复制
    Redis 持久化
    Redis 的消息订阅/发布
    Redis 排序功能 -- SORT
    Redis 过期时间与缓存应用
    Redis 事务
    Redis 5种数据类型的常用命令
    Java 框架的核心 -- 反射
    类的加载和初始化 ---- new 一个对象时,在JVM 中的过程是什么
    了解spring
  • 原文地址:https://www.cnblogs.com/ghelement/p/5323089.html
Copyright © 2011-2022 走看看