最近在完成一个面试题,要求前后端必须使用json数据传递。
后端PHP往前端传数据正常情况下都是使用return返回,然后前端请求URL获取返回值实现。
但由于我不太会前端,前端只好用Ajax去后端拿数据,那么当我在后端用PHP return返回数据时,发现前端是获取不到数据的。
但是用echo却可以。
这到底是是怎么回事呢?
主要原因如下:
1.ajax请求从服务器端读取返回值,而且这些返回值必须为一些可读的数据类型, 例如json或html。
为了打印这些返回值 你需要echo,但是return则不会打印出来数据 它只是简单的在服务器上传递数据。
2.Ajax获取返回值是使用HTTP请求。
return不会产生输出(只在server端进行),而echo可以(从server -> brower,http协议)。
Ajax请求的url其实就是一个页面,它可以在浏览器显示,而 php中以return返回数据只是在服务器端去返回这些数据。
综上所述,如果ajax 地址是一个PHP return,将不会获取到正确数据。