【问题标题】:Illegal character in javascript string parameter coming from SQL来自 SQL 的 javascript 字符串参数中的非法字符
【发布时间】:2016-04-25 23:36:59
【问题描述】:

我正在维护一个 asp.net rest api,其中 SQL 数据通过存储过程加载并转换为 rest。

在网页上,我有一个带有 onclick 属性的 html 元素,将结果的内容作为参数传递。这几乎适用于所有情况,但是在 chrome 控制台中给出了 Uncaught SyntaxError: Unexpected token ILLEGAL 。

我希望字符串中的这个字符是问题:

我只是找不到我需要在 C# 中替换什么字符才能从字符串中删除它。而且我没有一个好的环境来测试或调试它。

Ps 不能更改 SQL 中的存储过程。

-- 更新--

我不能给出确切的值,因为这有点保密,但是当我用 chrome 检查它时,这是从其余 api 返回的(网络选项卡中 api 调用的结果):

21.12.15 xxx xxx xxx
↵
↵[xxx 13-01-2016] gebeld, gesproken met xxx : hij heeft met xxx besproken dat

我有一个带有 onclick 事件的信息图标,将上面的字符串 (PayComment) 作为参数传递。 {{PayComment}} 被上面的字符串替换为把手。

<span onclick="GetInvoicePayComment('{{PayComment}}');">i</span>

我在 javascript 函数的第一行设置了一个调试器,但它从未到达该行。

function GetInvoicePayComment(Comment) {
//
}

-- 更新 2-- 通过这里的讨论,我认为我需要检查源 html,因为把手用值替换了 {{PayComment}}。结果如下所示:

<span class="small fa fa-info-circle" style="text-align: center; font-size: 18px; cursor: pointer;" onclick="GetInvoicePayComment('21.12.15 xxxx

[xxxx 13-01-2016] gebeld, gesproken met xxx : hij heeft met Rxxx besproken dat deze factuur nog niet moet worden betaald.');"></span>

我猜这里的换行符是问题而不是字符。

【问题讨论】:

  • 可能您的过程结果包含一个新行文字,这会导致浏览器出现该问题。如果您可以提供有关问题的更多信息(浏览器上的示例输出和确切问题),我可以帮助您更有效的方式。
  • GetInvoicePayComment('{{PayComment}}');获取?我的意思是您面临的问题取决于您的数据类型。我假设您正在通过 ajax 调用获取该数据,如果您的 ajax 数据类型是 javascript 换行文字可能会导致该问题。 ↵ 这只是一个 unicode 字符,您的问题不应与该字符有关。
  • 页面从带有把手的其余 api 加载数据。 {{PayComment}} 已经加载,我只是不在界面中显示它。当用户单击 i 图标时,我会显示一个包含 {{PayComment}} 内容的弹出窗口。

标签: javascript c# asp.net sql-server


【解决方案1】:

你可以像这样消除 str 字符串中的返回字符:

str.replace("↵", "");

或者你最好用这样的新行字符替换它:

str.replace("↵", "\n");
str.replace("↵", "<br>");

【讨论】:

  • 在 javascript 或 c# 中?您可以按原样替换该字符吗?当我查看 sql 源时,我看不到字符。我猜是sql源码中的char(13)和char(10),但是不知道怎么确定。
  • 是的,javascript 确实有 string.replace() 方法。对于 char,您可以在开发人员调试控制台中检查返回字符串值。对于测试,您可以在 标签之间触发函数,而不是触发事件
【解决方案2】:

我已经通过删除 api 中的换行符来解决它:

PayComment = item.PayComment.Replace(Environment.NewLine, "")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 2013-07-18
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多