0

据我了解,在对服务器端 (PHP) 进行 Ajax 调用时,可以指定调用允许的数据类型。我经常看到这是一个 JSON 对象。

此 Ajax 调用是否可以指定任何其他对象类型?

这是有道理的,因为 JSON 是用于 Javascript 的,所以它希望它的数据采用相应的格式,但为什么不直接使用获取的查询结果对象,就像它在 PHP 视图上所做的那样?

4

2 回答 2

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 重新创建它可能更容易。

于 2013-08-30T14:09:14.027 回答
1

由于AJAX调用是由 javascript 函数触发的(不是吗?)并且结果被返回到 javascript 回调函数,因此您正在使用 javascript(在客户端)。

您可以返回 JSON、纯文本、XML……但是您必须关心您使用的是什么格式,此时 JSON 是恕我直言的最佳选择。

于 2013-08-30T14:07:57.817 回答