大多数MVC
框架都支持在将服务器数据放到网页之前对其进行转义。jQuery
我在's 的方法中找不到任何选项ajax
来做同样的事情。事实上,我什至找不到一个原生 jQuery 函数来转义字符串以便在页面上正确显示(将内容放在 adiv
中并调用.html(
),不能保证保留空白)。为什么这个函数在 jQuery 中不可用,但你可以在underscore
和prototype
库中找到它?
问问题
593 次
1 回答
2
我认为您的意思是要防止 HTML 标记(例如<br/>
, <a>
, &
)被视为 HTML 标记:您只想将其直接显示给用户。这有助于防止 XSS(跨站点脚本)等攻击。
这实际上用 jQuery 很容易,但它与转义不同。它只是使用text
方法,这意味着内容被视为文本内容,而不是标记。
$.ajax({
url: 'someurl',
success: function(data) {
$('#yourElement').text(data);
}
});
它是不同的工作客户端到服务器端。在服务器端工作,您正在处理标记,需要对其进行转义以停止解析器将应为文本的内容视为标记。在客户端,标记已经被解析,所以你只需要告诉浏览器“这是文本内容”。这可以通过多种方式完成(innerText
、document.createTextNode
、甚至document.createCDATASection
);jQuery 的data
方法会为您做到这一点。
于 2012-08-28T09:31:32.123 回答