根据我的理解,当向服务器端(PHP)发出Ajax调用时,可以指定调用允许的类型数据。我经常看到这是一个JSON对象。
此Ajax调用是否可以指定其他任何对象类型?
这是有道理的,因为JSON是针对Javascript的,所以它希望它的数据采用相应的格式,但为什么不直接使用获取的查询结果对象,就像在PHP视图上完成它一样?
答案 0 :(得分:4)
JavaScript和PHP通过HTTP与原始数据相互通信(您可以将它们视为纯文本字符串)。语言解释器在接收到这些原始数据时会处理任何数据转换。因此,即使似乎就像你来回传递JavaScript对象一样,你实际上只是传递JSON格式的字符串,而你的JavaScript库可能会自动解析它们。
PHP只能通过发送此原始数据从HTTP请求返回数据,这通常会导致字符串转换。所以说你有一个查询结果对象 - 你会这样做:
echo $result_object
这可能是任何事情;也许它会回显出“Object(#1Result)” - 或者对象的toString方法。这在JavaScript方面不是很有用。
当你说PHP视图时,我不确定你的意思,但我想你有一些模板引擎。这是用PHP编写的,可以对php对象本身进行操作,以获取需要以某种格式(可能是HTML)发出的数据。
如果您的问题是为什么使用JSON而不是HTML更好 - 那么无论您的选择如何,都有很多优点和缺点。由于其紧凑的尺寸和简单性,JSON通常是一个不错的选择。如果你想真正显示原始HTML,那么发送HTML可能更容易,而不是在客户端上从JSON重新创建它。
答案 1 :(得分:1)
由于AJAX
调用是由javascript函数触发的(不是?),结果正在返回到javascript回调函数,你正在使用javascript(在客户端)。
你可以返回JSON,纯文本,XML ......但是你必须关心你使用的是什么格式,此时JSON是最好的选择恕我直言。