关于jQuery ajax调用的php echo和return之间的区别
我无法让jQuery Ajax调用的成功函数正常工作,并且向我指出原因是我的PHP函数在使用echo $ result时使用了返回$ result。
将Ajax从“返回$ result”调用的PHP函数更改为“echo $ result”修复了问题,但为什么呢? 关于PHP脚本的两者(返回和回声)之间的区别有很多解释,但是在将该值发送到Ajax调用时它们有何不同?
好吧,ajax调用从服务器读取响应,并且该响应必须呈现为某种类型的可读数据,例如application/json
或text/html
。
为了编写该数据,您需要使用PHP从服务器echo
它。
return语句不会写入数据,它只是在服务器级别返回。
Ajax调用使用HTTP请求的响应。 PHP脚本不会通过returing生成输出,而是通过echoing生成输出。
Ajax调用以与我们相同的方式查看数据,它将其作为字符串读取。 它基本上访问另一个网页并“接收”结果。 PHP的’return’仅返回服务器上的值。 您需要实际输出数据,以便在进行Ajax调用时,它正在查看的页面实际上已写出数据。
echo
命令将数据输出到Standar Output,这是在Web浏览器应用程序中,即请求数据的客户端。 在CLI中,这将在控制台上打印数据。 并且return
命令使用值退出函数,但不打印任何内容。
如果要在PHP函数之间进行通信,则必须使用return
。 但是如果要输出一些数据,则必须使用echo
。