繁体   English   中英

Ajax响应后脚本未加载

[英]script doesn't load after ajax response

我试图进行ajax调用并在div类中显示html部分。 为此,我使用了以下方式。

$.ajax({
    type: "get",
    url: "{{url('searchByCheckbox')}}",
    dataType: 'html',
      success: function(html)
        {
           $(".infinite-scroll").html(html)
        }   
});

但是问题是在html部分中有一个脚本,当我进行第一个ajax调用时,我想加载该脚本,但第二个它已加载了脚本。 假设这样的html响应:

<script>
  alert()
</script>
// html

我该如何运作? 我将脚本放在html页面上方,作为响应。

(那些将问题标记为重复的人应至少阅读我想要的内容和他们想要的内容)

我肯定由于脚本而发生错误,因为您正在关闭html内的</script>标签。

最好的解决方案是将ajax调用中的数据作为json

为此,您应该:

1-如下所示将dataType添加到您的ajax参数:

$.ajax({
    type: "get",
    dataType: "json",

2-在处理ajax调用的php文件中,必须将值作为json重新发送,如下所示:

假设当前您正在执行以下操作:

echo $html

您应该更改它以匹配以下内容:

$retArr = array(
    "html"     => $html, //Your html code without the javascript function
    "jsFunc"   => $jsFunc //Your java script function parameters
) ;
echo json_encode($retArr) ;

然后您的ajax success必须如下所示:

success: function(data)
    { //You can access all the object parametes by calling the object name `data` followed by a dot `.` and then by the parameter key
       data.jsFunc // Your javascript function params
       $(".infinite-scroll").html(data.html) ;
    } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM