gpt4 book ai didi

rest - 通常在 ExtJS 应用程序上转义 HTML 的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 01:44:40 25 4
gpt4 key购买 nike

我正在使用 ExtJS 开发一个 web 应用程序来构建 GUI 并通过 RESTful web 服务与服务器通信(返回的数据被格式化为 JSON 对象)。
现在我在处理包含 HTML 标签、Javascript 代码的数据时遇到问题;因为当我将这些值设置为 Ext 表单、标签、输入字段时,它们会受到这些语法的影响。
我使用这个函数从模型对象加载数据到表单:

form.loadRecord(model);

我找到了转义 HTML 和 JS 的解决方案:使用
field.setValue(Ext.util.Format.htmlDecode(data)); 

但我认为这对整个应用程序来说不是一个好的解决方案,因为开发人员必须做很多事情:检查所有输入字段、标签,并将该片段放入其中。毕竟,这不是构建快速、健壮和可维护的应用程序的好方法。
所以,请你帮我解决一下,以便它可以在一个地方修改,并影响到其他地方。我可以覆盖 AbstractComponent 的 setValue/setLabel 吗?或者我应该在渲染数据之前对数据进行编码?以及如何解码这些数据?
(P/S:我在服务器端使用Grails框架)
非常感谢。

最佳答案

一切都取决于您的用例,但我所做的是 - 在服务器端转义所有 HTML 代码,以便不会错误地“忘记”地方。这当然会产生问题,当这些数据需要加载到表单字段中时,因为它们被转义了。
最简单的解决方案是覆盖所有表单字段的 setValue 并使用 Extjs htmlDecode 函数,这会将这些值恢复为正常。

Ext.override(Ext.form.field.Base, {
setValue: function(val) {
val = Ext.util.Format.htmlDecode(val);
return this.callParent([val]);
}
});

关于rest - 通常在 ExtJS 应用程序上转义 HTML 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18456630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com