返回完全被忽略

时间:2014-07-13 09:07:38

标签: php ajax return echo

我有以下代码

<?php   
    $token = '';
    if(!empty($_POST['token'])) $token = $_POST['token'];

    $url = '';
    if(!empty($_REQUEST['url'])) $url = Sanitize($_REQUEST['url']);

    if(!filter_var($url, FILTER_VALIDATE_URL)) return 'erro1';
?>

这个页面应该由AJAX执行,所以我编码错误代码,现在如果URL无效,我希望它返回erro1

问题是,它永远不会返回erro1。我尝试转储filter_var的结果,它是false正如预期的那样!即使URL无效,该页面也只是执行并且不返回任何内容,但是如果我使用echo切换返回,则它会起作用。

为什么? 为什么echo工作但没有返回?

2 个答案:

答案 0 :(得分:4)

您需要使用echo代替return。您的Web服务器执行PHP代码并提供其使用echo和其他打印功能生成的输出

在函数之外,return interrupts脚本。

答案 1 :(得分:3)

return会将函数中的值返回给调用该函数的代码。它只能在PHP内部使用。

您的return声明不在函数中。

要将数据写入JavaScript可以读取的HTTP响应,您需要使用echoprint或类似内容。