eval() 方法在 Ajax 响应中做什么?

问题描述 投票:0回答:2

以下代码存在于我正在处理的 JavaScript 文件之一中,其中包含 jQuery Ajax 代码。

我看到下面的响应结果,它是一个由后端手动创建的 JSON 字符串。

eval()
到底在这里做什么?

success: function (response) {
  var response= response.replace(/\\/g, "%5C");
  eval(response); 
},
javascript jquery eval
2个回答
6
投票

eval
执行传入的字符串,就好像它是 JavaScript 代码一样。

究竟会发生什么完全取决于

response
的内容。

也就是说,传递给

response
函数的
eval
变量的值将被评估为正常的 javascript。

如果

response
"alert('Hello from evel!');"
,您将看到一个带有文本“Hello from evel!”的警告框。


2
投票

eval()
在其执行上下文中将字符串作为 JavaScript 代码执行。一般来说,这意味着作用范围为它所在的任何函数。

它通常用于评估 JSON 字符串。请注意,如果您要

eval()
处理 JSON 字符串,则应将其括在括号中 (
(
&
)
)。括号意味着它将始终被计算为表达式,而不是块。

© www.soinside.com 2019 - 2024. All rights reserved.