当前位置: 首页 > 面试题库 >

如何强制Javascript在对Ajax请求的HTML响应中执行

齐建白
2023-03-14
问题内容

我们正在对所有的Ajax请求处理都使用Prototype,为了使事情变得简单,我们简单地渲染HTML内容,然后使用以下函数将其分配给适当的div:

function ajaxModify(controller, parameters, div_id)
{
    var div = $(div_id);

    var request = new Ajax.Request 
    (
        controller, 
        {
            method: "post",
            parameters: parameters,
            onSuccess: function(data) {
                div.innerHTML = data.responseText;
            },
            onFailure: function() {
                div.innerHTML = "Information Temporarily Unavailable";  
            }
        }
    );
}

但是,有时我需要在HTML响应中执行Javascript,而此方法似乎无法执行此操作。

由于种种原因,我试图将Ajax调用的功能列表保持在最低限度,因此,如果有一种方法可以修改现有功能而又不会破坏当前正在使用的所有位置,或者可以通过一种方式来修改HTML响应,会导致任何嵌入的javascript执行都很好。

值得注意的是,我已经尝试将“ evalJS:’force’”添加到该函数中,以查看它会做什么并且对任何事情都无济于事。


问题答案:

参数为:

evalScripts:true

请注意,您应该使用 Ajax.Updater 而不是 Ajax.Request

请参阅:http://www.prototypejs.org/api/ajax/updater

如果响应头为:Ajax.Request将仅处理JavaScript:

application / ecmascript,application / javascript,application /
x-ecmascript,application / x-javascript,text / ecmascript,text /
javascript,text / x-ecmascript或text / x-javascript

而Ajax.Updater将处理JS的是evalScripts:true设置。Ajax.Request适用于数据传输,例如获取JSON响应。

由于您正在更新HTML,因此无论如何都应该使用Ajax.Updater。



 类似资料:
  • 问题内容: 我正在发送一个带有2个post值的ajax请求,第一个是“ action”,它定义了我的php脚本必须解析的动作,另一个是“ id”,它是要为其解析脚本的用户的ID。 服务器在array()中返回6个值,然后使用PHP函数将其编码为JSON: 我的一些响应为HTML,但是当我将其编码为JSON时,它会转义,因此 如何禁用它? 当我不知道如何在获得服务器响应时在jQuery中显示此消息时

  • 我正在尝试使用Laravel框架构建REST api,我想要一种强制api始终使用JSON响应的方法,而不是手动执行以下操作: 换句话说,我希望每个响应都是JSON。有什么好办法吗? 更新:响应必须是JSON,即使在异常(如not found exception)上也是如此。

  • 问题内容: 我有这段HT​​ML: 我通过一个简单的.ajax调用来获取 如果我用它过滤: 它工作正常,我得到整个div的id =“ 1”, 但是如果使用: htmlFiltered变量是一个空对象。我不知道我在做什么错。 问题答案: 您应该这样存储它: 编辑:您获取html的方式有效,但是不建议这样做。 您无法获取最后一个元素,因为您正在使用而不是,因此您应该具有: 代替 另外,W3C建议不要使

  • 问题内容: 我必须从控制器返回员工列表以响应jQuery AJAX请求。我应该怎么做? 我的控制器: 相关视图中的AJAX代码: 提前致谢。 问题答案: 在spring,当你需要对象序列化,反序列化和消息转换时。在这种情况下,你需要使用和注释控制器处理程序方法。 哪里: @ResponseBody:将通知spring尝试转换其返回值并将其自动写入http响应。 @RequestBody:将通知sp

  • 我已经找了5个小时左右,但我放弃了。我的ajax get请求不起作用。 它连接到标准的C#mvc api,但我得到的只是这个错误: 无法加载XMLHttpRequesthttp://localhost:18428/api/Reservation/1?weekNumber=1. 对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。起源'http://localhost因

  • 问题内容: 我在使用Javascript的代码中使用AJAX调用。 编辑: 我已经更新了我的回调函数。但是在这里,我收到了选择列表作为[对象节点列表]。现在如何在HTML中显示? 在回调函数中,我现在想以HTML格式接收响应,因此我想解析该HTML响应,以便进一步处理它。我正在使用普通的javascript来做到这一点。如何解析以HTML格式接收的Ajax响应? 问题答案: 创建一个元素并将HTM