Php 为什么我能';不在Ajax响应文本中编写Javascript代码吗?
PHP上的Php 为什么我能';不在Ajax响应文本中编写Javascript代码吗?,php,javascript,ajax,Php,Javascript,Ajax,PHP上的reponseText应该是这样的 echo“警报('test')” 但什么也没发生。如何返回Javascript代码?您已将其作为文本返回。现在,您需要做的就是以某种方式将该文本插入页面: document.body.innerHTML += response; 发生了很多事情,做出了很多假设,但这是最简单的方法 (好吧,这并不完全正确。最简单的方法是返回JavaScript,然后evalit。)您已将其作为文本返回。现在,您需要做的就是以某种方式将该文本插入页面: documen
reponseText
应该是这样的
echo“警报('test')”代码>
但什么也没发生。如何返回Javascript代码?您已将其作为文本返回。现在,您需要做的就是以某种方式将该文本插入页面:
document.body.innerHTML += response;
发生了很多事情,做出了很多假设,但这是最简单的方法
(好吧,这并不完全正确。最简单的方法是返回JavaScript,然后eval
it。)您已将其作为文本返回。现在,您需要做的就是以某种方式将该文本插入页面:
document.body.innerHTML += response;
发生了很多事情,做出了很多假设,但这是最简单的方法
(当然,这并不完全正确。最简单的方法是返回JavaScript,然后对其进行评估。)ajax调用由调用方决定如何处理(取决于返回的数据类型)。在这种情况下,如果您的调用者不准备执行此操作,则不会发生任何事情。根据实际代码在这里要执行的操作,处理ajax调用返回的结果有许多不同的可能性。它可以格式化为JSONP,以便在主页代码中调用函数来处理返回的数据。您可以返回完整的JS(不带标签)并在主机页之后对其执行eval()(由于存在一些安全风险,通常认为这不是一个明智的想法),也可以将其添加到当前页面,让浏览器只解析您放在其中的任何内容。通常,Ajax调用返回纯数据,您的主机页代码处理该数据并保存决定如何处理该数据的代码。这是最安全的机制,因为hijaacked连接无法将代码注入页面(它所能做的就是更改数据)。ajax调用由调用方决定如何处理它(取决于返回的数据类型)。在这种情况下,如果您的调用者不准备执行此操作,则不会发生任何事情。根据实际代码在这里要执行的操作,处理ajax调用返回的结果有许多不同的可能性。它可以格式化为JSONP,以便在主页代码中调用函数来处理返回的数据。您可以返回完整的JS(不带标签)并在主机页之后对其执行eval()(由于存在一些安全风险,通常认为这不是一个明智的想法),也可以将其添加到当前页面,让浏览器只解析您放在其中的任何内容。通常,Ajax调用返回纯数据,您的主机页代码处理该数据并保存决定如何处理该数据的代码。这是最安全的机制,因为hijaacked连接无法将代码注入页面(它所能做的就是更改数据)。下面是一个简单的示例。但是,不要将
标记包含在这个棘手的问题中
$.ajax({
type: "GET",
dataType: "text",
url: "jsLoader.php",
success: function(data){
eval(data);
}
});
这里有一个简单的例子。但是,不要将
标记包含在这个棘手的问题中
$.ajax({
type: "GET",
dataType: "text",
url: "jsLoader.php",
success: function(data){
eval(data);
}
});
执行document.body.innerHTML+=响应
必须重新创建整个DOM,并且可能会丢失一些数据。另外,我认为你不能用这种方式附加脚本。它在某些浏览器中有效,在其他浏览器中则不太有效。(有趣的是,您在“盲目插入/评估脚本是一种安全风险”之前使用了“丢失信息”。)当您是脚本的作者时,这不是一种安全风险。这仍然有效。但正如我所说,有一些假设正在进行。你应该试试,看看会发生什么。(在我看来,对生活总的来说是个好建议。)做document.body.innerHTML+=response
必须重新创建整个DOM,并且可能会丢失一些数据。另外,我认为你不能用这种方式附加脚本。它在某些浏览器中有效,在其他浏览器中则不太有效。(有趣的是,您在“盲目插入/评估脚本是一种安全风险”之前使用了“丢失信息”。)当您是脚本的作者时,这不是一种安全风险。这仍然有效。但正如我所说,有一些假设正在进行。你应该试试,看看会发生什么。(在我看来,这是对生活的一个很好的建议。)对不起,我是否标记了jQuery
?本例的主要焦点是eval()函数。如何处理ajax请求没有什么区别。对不起,我是否标记了jQuery
?本例的主要焦点是eval()函数。如何处理ajax请求没有任何区别。可能重复的BERTER:---简单搜索:可能重复的BERTER:---简单搜索: