0

在这个脚本中,使用 php 的 return 将不起作用,而 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.
?>
4

2 回答 2

2

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

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


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

尽管它正在检查“XMLHttpRequest”,但有人可能会从您的网页之外的其他东西发出这种类型的请求。

于 2012-12-19T04:50:31.983 回答
2

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

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

于 2012-12-19T04:53:36.720 回答