2

我有以下代码(请原谅糟糕的编码,调试就是这样):

$postData = Mage::app()->getRequest()->getPost();
if(!$postData)
{
    $postData = $this->getRequest()->getPost(); 
}
if(!$postData)
{
    $postData = $_POST; 
}

如您所见,我只是想获取 HTTP POST 值。

这是场景:

  1. 从 HTTP POST 模拟器,数据通过
  2. 从 Shopify webhook 中,没有任何东西通过(只是“Array()”)
  3. Shopify 发布到 PostCatcher 会显示大量数据

Shopify 以 JSON 格式发布。

关于我无法捕捉 POST 数组的任何想法?

4

3 回答 3

4

您无法JSON通过简单地使用$_POST或来获取帖子值Mage::app()->getRequest()->getPost();。试试这个,

$value = json_decode(file_get_contents('php://input'));
print_r($value);
于 2013-11-06T09:42:25.583 回答
3

在我的一个项目中,我遇到了同样的错误

Mage::app()->getRequest()->getPost();正在给出空白值。

我在提交表单时使用了一个扩展程序,其中有一个制造商描述字段。

如果它有类似fromselect之类的文本内容或一些类似于 SQL 命令的内容。它没有发布表单数据。

原因是托管服务提供商有一些设置来清理数据以防止 SQL 注入。

我向托管服务提供商提出了请求,问题就解决了。

在此之前,我尝试了很多不需要的编码内容。

于 2013-12-26T11:41:01.953 回答
1

如果您在控制器中,基本上是相同Mage::app()->getRequest()->getPost();的。 它们也与对值的一些额外过滤相同。 因此,如果您在任何情况下都收到一个空数组,那么您应该在所有情况下都收到一个空数组。 确保数据是通过 POST 发送的。 也试着看看长什么样。也许Magento认为参数是通过$this->getRequest()->getPost();
$_POST


$this->getRequest()->getParams()_GET

于 2013-11-06T09:20:35.437 回答