关于jQuery ajax调用的php echo和return之间的区别

我无法让jQuery Ajax调用的成功函数正常工作,并且向我指出原因是我的PHP函数在使用echo $ result时使用了返回$ result。

将Ajax从“返回$ result”调用的PHP函数更改为“echo $ result”修复了问题,但为什么呢? 关于PHP脚本的两者(返回和回声)之间的区别有很多解释,但是在将该值发送到Ajax调用时它们有何不同?

好吧,ajax调用从服务器读取响应,并且该响应必须呈现为某种类型的可读数据,例如application/jsontext/html

为了编写该数据,您需要使用PHP从服务器echo它。

return语句不会写入数据,它只是在服务器级别返回。

Ajax调用使用HTTP请求的响应。 PHP脚本不会通过returing生成输出,而是通过echoing生成输出。

Ajax调用以与我们相同的方式查看数据,它将其作为字符串读取。 它基本上访问另一个网页并“接收”结果。 PHP的’return’仅返回服务器上的值。 您需要实际输出数据,以便在进行Ajax调用时,它正在查看的页面实际上已写出数据。

echo命令将数据输出到Standar Output,这是在Web浏览器应用程序中,即请求数据的客户端。 在CLI中,这将在控制台上打印数据。 并且return命令使用值退出函数,但不打印任何内容。

如果要在PHP函数之间进行通信,则必须使用return 。 但是如果要输出一些数据,则必须使用echo