$ _REQUEST有效,但$ _POST没有 -

时间:2014-09-03 01:22:25

标签: php jquery ajax wordpress

感谢您分享我的头痛 - 这是短篇小说:

最近继承了一个编码不佳的WordPress网站 - 利用WP联系表7 -

我删除了所有的WP-CF代码(由于WordPress在被移交给我之前被剥离了) - 只是为了制作一个简单的补丁脚本并继续实际工作。

我用这个替换了WPCF脚本:(为了让事情变得尽可能简单):

jQuery(document).ready(function() {
 $ = jQuery;
 console.log("Ready");
 $("#quack-button").click(function(e) {
   console.log("Quack"); 
   e.preventDefault();
   e.stopPropagation();
   POSTDATA = $.param($("#quack-form").serializeArray());
   $.ajax({
     method : "POST",
     url : "http://www.domain.com/contact.php",
     data : POSTDATA,
     success : function(response) {
      console.log(response);
      alert("Thank you ! We'll get in touch as soon as we can -! ");
     }
   });
 });
});

但是,在尝试$.paramserialize的许多不同形式/组合后 - 服务器端脚本继续返回一个空白数组....

print_r($_POST);

但是,当我将其更改为print_r($_REQUEST)时 - 一切正常,很好......

现在,这种情况可能会发生什么?我错过了哪些盲点可能造成这种情况......?

这是我在一段时间内处理过的最令人困惑的事情......我感谢任何人都可以理解...

1 个答案:

答案 0 :(得分:7)

如果您想将其发送为$_POST,请更改此行:

method: 'POST'

到此:

type: 'POST'

根据docs,这就是设定它的方式。

  

键入(默认值:'GET'
  类型:字符串
  要求的类型(“POST”或“GET”),默认为“GET”。 注意:此处也可以使用其他HTTP请求方法,例如PUT和DELETE,但并非所有浏览器都支持这些方法。