0

我只是想知道通过 ajax 将表单数据发布到 PHP 脚本的最佳方式是什么。我正在遵循这三种方法:

  1. 将表单字段分别发布到 PHP(并且在 PHP 中像往常一样单独接收它们)

  2. 将表单数据转换为 JSON 编码数据并在单个 POST 字段中将其发送到 PHP(并在 PHP 中将其作为具有 JSON 编码数据的单个 POST 变量接收)

  3. 将表单数据转换为 JSON 编码数据,并以 PHP 在$GLOBALS["HTTP_RAW_POST_DATA"].

我想问在安全性和性能方面最好的方法是什么。有没有其他更好的方法来完成这个过程?我再说一遍,我是通过 jQuery AJAX 发送的。

4

2 回答 2

6

我只是想知道通过 ajax 将表单数据发布到 PHP 脚本的最佳方式是什么。

句号。jQuery 解决了这个特殊问题。使用serializeorserializeArray并继续处理更重要的事情。


我想问在安全性和性能方面最好的方法是什么。

你的方法都不是“最好的”方法。它们都比简单地使用 jQuery 已经给你的东西更糟糕,而且它们在安全性和性能方面都是空的。安全性和性能与您发布的代码无关,这些概念完全在您尝试做的事情之外,在完全独立的层上实现。

安全性在这里完全无关紧要。您要么使用 SSL 并且安全,要么您没有使用 SSL 并且没有安全性。没有中间立场,无论您使用什么方法发布数据,都与安全性完全无关。您的任何方法都不比其他任何方法或多或少“安全”。

就性能而言,涉及较少 HTTP 请求的版本更好。单独发布这些字段在性能方面会很糟糕,我想无论如何以这种方式处理数据是一场噩梦。以这种方式一次发回一个字段实际上没有任何优势。如果我误解了,而您说的是对每种方法都使用一个 HTTP POST,那么没有任何方法更好。

由于您已使用 jQuery 标记此内容,因此请使用 jQuery 方式:serialize您的表单并回发序列化数据。您将在 中收到一个正常的发布数据数组$_POST。真的没有理由做任何其他事情,你只是增加了复杂性而没有任何收获。

于 2012-10-23T14:23:38.790 回答
2

至于性能:最好尽量减少请求的数量。如果您可以在一个 POST 中发送所有数据,那么您应该这样做。但是,可能没有充分的理由将其全部作为单个字段值发送。为清楚起见,只需将它们作为单独的字段发送,然后在服务器端处理它们,就像您接收普通表单一样。

至于安全性:使用 POST 时,没有任何方法比其他方法更安全。尝试https:加强这里的东西。

于 2012-10-23T14:19:28.603 回答