为什么返回不起作用,但echo在这个jquery中使用php脚本

时间:2012-12-19 04:47:49

标签: php jquery

在这个脚本中,使用php的返回将不起作用,而echo将使用。事实上,如果我使用echo,并且有人直接访问该页面,他们将能够看到没有格式化的输出。

<script type="text/javascript">
$(function() {

    $('.callAppend').click(function() {
             $.ajax({
                type: 'GET',
                url:  'recent.php',
                dataType:'HTML',
                cache:false,

                success: function(data){
                console.log(data);

                //}       

              },

            });    

        return false;
    });
});
</script>

这是php脚本

<?php
$feedback = 'Hello this is the php page';

return $feedback; //Use echo, and all works fine.
?>

2 个答案:

答案 0 :(得分:2)

return用于将函数中的值返回到另一段PHP代码。

jQuery不是服务器上PHP代码执行的一部分,所以它不知道服务器端真正发生了什么。 jQuery正在等待呈现的服务器响应,这是echo提供的。


这个SO答案提供了一个解决方案,只允许这种类型的请求调用AJAX脚本: Prevent Direct Access To File Called By ajax Function

即使它正在检查'XMLHttpRequest',也有人可以通过除了我们之外的其他方式提出此类请求。

答案 1 :(得分:2)

当您使用AJAX加载URL时,您正在加载该URL的原始输出。 Echo产生输出但返回不产生。你需要在OOP的主题上做一些理由来理解返回的目的是什么。

Echo是发送输出的正确方法。