在 jQuery post 上接收带有 HTML 的回调


Receiving callback with HTML on jQuery post

我想将 POST 数据提交到同一(当前)页面,但在回调时只接收我在"if [$_POST]"代码块中回显的 HTML。目前,我确实将HTML代码返回到我单击的跨度,但整个页面,我不确定。

我希望你明白我的意思,因为它非常简单,我认为我的代码会让你更加困惑。谢谢!

我认为问题是:如果我使用 POST 发送所需的数据,如何仅请求页面的一部分而不是获取完整的源代码?这在Javascript端无法正确解决。您实际需要的只是在服务器端检查:是否有 POST 数据?如果存在 POST 数据,您应该仅使用页面的一小部分进行表单和响应。此外,您实际上可以解析您刚刚获得的完整页面源代码,并仅找到您需要的部分。但这样你就会遇到与性能和流量相关的问题。作为结论,我建议您使用不同的URL来仅获取一小部分:将相同的URL与不同的方法用于不同的目的是一种不好的做法。

您需要在

发送响应后退出脚本。

<?php if(isset($_POST['is_ajax'])){?>
    goes content
<?php 
} die;
?>

然后是其他内容。

或更好的方式

    if(
      !empty($_SERVER['HTTP_X_REQUESTED_WITH']) 
      && 
       strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'
    ) {?>
                goes content  
<?php }  die;?>