是否最好直接返回HTML以避免Ajax响应?

Alw*_*ing 6 javascript ajax

我开始做一些JS/HTML/CSS.从环顾四周看,从后端返回HTML(例如,Ajax响应)并直接显示它(例如通过将其分配给元素的innerHTML)并不罕见.例如,我相信jQuery load()方法基本上是执行此操作的快捷方式.

采取这种方法让我担心的原因有两个,但我不确定这是否只是因为我不熟悉这些方面的方法和惯用语而且我只是落后于时代或者这些是否是合理的问题.我特别关注的是:

1)直接将HTML分配给元素似乎不安全.或者,至少在有可能存在任何用户内容(甚至是第三方内容)的情况下至少是危险的.

2)直接发送演示信息(HTML)似乎可能导致最好避免的演示/模型混合.当然,可以在后端将这些干净地分开并仍然返回HTML,但是在我看过的少数几个项目中并非如此.

所以,我的问题是,在Ajax应用程序中返回HTML是一种合法形式的HTTP响应,还是最好避免?

Dan*_*ith 1

老实说,我认为这取决于用例。如果客户端必须基于某些 JSON 或 XML 数据构建大量 HTML,那么客户端将付出相当大的代价。

就我个人而言,我混合使用两者 - 如果它只是一小部分数据(整数或小字符串),我将使用 JSON,甚至仅使用原始数据本身。

如果它是一组复杂的数据(比如一堆用户评论),我必须在客户端进行格式化,那么我将只发送 html 并节省客户端的工作。

就我个人而言,我不会担心安全性,至少不会担心用户注入恶意 HTML - 无论如何,您应该在提交时处理它。

编辑:有一个例外 - 当带宽是一个问题时(例如移动网络),那么通过线路发送尽可能少的数据几乎总是最好的。