因此,我的团队进行了一场小型辩论,我确信这在很多地方都得到了回答,但我找不到任何明确的答案。
现在我们有一个服务器可以处理 JSON 数据(想想 REST,排序)。客户端是一个完整的 JavaScript 客户端,它使用 $.ajax 来获取数据并适当地呈现它。
客户端使用UnderscoreJS 模板在 HTML 中呈现数据:
<%- something %>
因此,如果服务器发送一个 JSON 块(非 html 编码):
{
"username": "Joe's Crab & Cookies"
}
服务器应该是 HTML 还是 JavaScript 编码这个值?还是应该留给客户?
如果来自服务器的一些数据需要成为元素的属性怎么办:
<li data-item-id="<%= userId %>">something</li>
我意识到我不需要对服务器生成的任何内容进行编码,它是用户输入的所有数据。所以想象上面的“userId”是由用户设置的,而不是生成的。
因此,如果我们在服务器和客户端上进行编码,我们会在呈现的页面上看到:
Joe's Crab & Cookies