通过ajax将表单数据发布到PHP的最佳方式

时间:2012-10-23 14:16:44

标签: php jquery ajax json forms

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

  1. 将表单字段分别发布到PHP(并在PHP中单独接收它们)

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

  3. 将表单数据转换为JSON编码数据,并以PHP在$GLOBALS["HTTP_RAW_POST_DATA"]中收到的方式将其发送给PHP。

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

2 个答案:

答案 0 :(得分:6)

  

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

完全停止。 jQuery解决了这个特殊问题。使用serializeserializeArray继续处理更重要的事情。


  

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

你的方法都不是最好的"办法。它们都比简单地使用jQuery已经提供给你的东西更糟糕,并且它们在安全性和性能方面都是 null 。安全性和性能 no 与您发布的代码有关,这些概念完全在您尝试做的外部,在完全独立的层上实现。

安全性在这里完全无关紧要。您使用的是SSL并且安全,或者您没有使用SSL,并且没有安全性。没有中间立场,用于发布数据的方法与安全性完全无关。你的方法都没有或多或少"安全"比任何其他人。

对于性能,涉及较少HTTP请求的版本更好。将这些字段单独发回将会是可怕的性能方面,而且我认为无论如何都要以这种方式处理数据是一场噩梦。在这种情况下,一次发布一个表单字段实际上没有任何优势。如果我误解了你并且你在谈论为每种方法使用单个HTTP POST,那么没有任何方法可以做得更好。

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

答案 1 :(得分:2)

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

至于安全性:使用POST时,没有任何方法比任何其他方法更安全。试试https:来强化这里的事情。