JavaScript in AJAX Response

JavaScript in AJAX Response

本文关键字:Response AJAX in JavaScript      更新时间:2023-09-26

我有一个关于AJAX的一般问题。是否可以在 AJAX 响应中发送 JavaScript 并执行它?还是使用 JSON 或纯 HTML 响应的唯一优雅方式?我的问题是我正在寻找处理 AJAX 请求的最佳方法,这些请求导致插入 HTML 或执行 JavaScript,具体取决于用户数据。

多谢。

我认为在

AJAX 响应之后执行的 JavaScript 函数对除了某些变量之外的每个人都是标准的。如果是这种情况,您应该在脚本文件中包含 JavaScript 函数,该函数在 .然后让 AJAX 响应返回所需的变量,例如用户 ID。然后使用该变量正常调用 JavaScript 函数,而不是每次都注入一个新函数。

如果返回 HTML,您可以在成功的 AJAX 请求时将其直接插入到 DOM 中。

我认为要走的方法是始终返回 JSON,即使它是一个 HTML 响应。JSON 响应可能如下所示:

{"responseType":"HTML", "varID":null, "payload":"<div>some html</div>"}

如果响应类型为 JS,则 varID 可以具有该变量,并且有效负载可以为 null。这只是一个例子,但您可以执行类似操作来标准化响应,但同时处理这两种情况。

不,这样做是可以的,在jQuery $.getScript中就是这样做的,它通过ajax获取文件,然后对其进行评估。这就是为什么使用 getScript 时不会添加任何脚本标签的原因

执行 ajax 调用收到的 javascript 是一个坏主意,因为这可能导致 XSS 风格的攻击(eval 是邪恶的,所有的爵士乐)。

AJAX 响应最好以 JSON 格式提供,然后客户端脚本可以根据它收到的 JSON 进行操作。