jQuery(或JS)解码字符串中的HTML字符实体

网络用户

我正在尝试<select>使用jQuery和JSON响应中返回的字符串数组中的选项值动态填充元素。选项值之一是Joe&#39;s Cafe解码时的值Joe's Cafe但是,当我使用以下代码时:

$.each(optionVals, function(idx, elem) {
    $('#restaurant').append('<option value="' + elem + '">' + elem + '</option>');
});

相应的选项不是我期望的。我看到了:

<option value="Joe's Cafe">Joe's Cafe</option>

代替这个:

<option value="Joe&#39;s Cafe">Joe&#39;s Cafe</option>

如何防止jQuery&#39;.append()操作中解码HTML实体我检查了JSON响应,并且HTML实体是完整的。加载选项并将HTML实体解码为单引号后,我检查了源代码'

昆汀

如何防止jQuery&#39;.append()操作中解码HTML实体

您不能,因为事实并非如此。

jQuery生成一些HTML,然后使浏览器将其转换为DOM。然后,它将那个DOM片段附加到表示页面的文档DOM上。

当您使用DOM检查器检查DOM(或innerHTML用于将其转换为字符串)时,您会将DOM序列化为HTML。此时,浏览器不知道(因为它不需要跟踪,因为它不需要跟踪),因此DOM中的撇号是来自文字的撇号还是字符引用。它用来决定如何表示字符的算法使用原义字符(当它可以使用1个可读性更高的字符时,使用5个字符代码毫无意义)。

<option value="Joe's Cafe">Joe's Cafe</option><option value="Joe&#39;s Cafe">Joe&#39;s Cafe</option>正在编写的两种不同的方式完全一样的东西在HTML中。你得到的应该没关系。


HTML中可能是同一件事,但存储在数据库中却完全不同。

听起来您想让表单将字符串提交Joe&#39;s Cafe到服务器。

<option value="Joe&#39;s Cafe">Joe&#39;s Cafe</option> 不会那样做

这将需要: value="Joe&amp;#39;s Cafe"

现在,您可以通过合理地生成DOM而不是将字符串混在一起来实现(因为将字符串混在一起时,HTML中具有特殊含义的字符将被视为具有特殊含义)。

$('#restaurant').append(
    $("<option />").val(elem).text(elem)
);

但是,您的含义是数据中包含原始撇号会破坏您的SQL。

这意味着您容易受到SQL注入攻击的威胁真正的解决方案是修复此服务器端

请参阅如何防止PHP中的SQL注入?或者查找如何使用准备好的语句来防止以服务器上使用的任何编程语言进行SQL注入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Swift中解码字符串

来自分类Dev

解码Java中的编码字符串?

来自分类Dev

解码字符串中的锚标记

来自分类Dev

Jinja中的Base64解码字符串

来自分类Dev

我想在python中解码字符串

来自分类Dev

编码和解码字符串中的差异

来自分类Dev

编码和解码字符串

来自分类Dev

解码字符串-引号问题

来自分类Dev

如何解码字符串?

来自分类Dev

美丽的汤解码字符串

来自分类Dev

编码和解码字符串

来自分类Dev

解码字符串:Python

来自分类Dev

iOS将HTML实体解码为字符串

来自分类Dev

JS - atob() 待解码字符串包含无效字符

来自分类Dev

在C#中解码字符串时获取未知字符

来自分类Dev

如何从xcode中的字符串解码HTML实体(“&#13;”和“&#163;”)

来自分类Dev

删除字符串中的HTML实体

来自分类Dev

PHP:如何将ASCII转换为HTML或如何解码字符串

来自分类Dev

来自已解码字符串的Unicode错误?

来自分类Dev

使用HtmlDecode或Escape解码字符串

来自分类Dev

如何在PowerShell上解码字符串

来自分类Dev

880.索引处的解码字符串(LeetCode)

来自分类Dev

解码字符串Char.Parse问题

来自分类Dev

解码字符串时哈希值不匹配

来自分类Dev

来自已解码字符串的Unicode错误?

来自分类Dev

如何在PowerShell上解码字符串

来自分类Dev

快速解码和编码字符串

来自分类Dev

无法正确编码或解码字符串

来自分类Dev

Python - 以字节为单位解码字符串