当前位置: 首页 > 知识库问答 >
问题:

PHP Post数组在axios POST上为空

杜嘉慕
2023-03-14

我正在试用Vue 2.0和axios,我遇到了一个小问题。当我尝试使用axios向我的帖子发送帖子请求时。php文件$\u POST数组始终为空。

岗位职能:

doPost: function() {
  console.log("post in progress")
  axios.post('api/post.php', {
      title: 'foo',
      body: 'bar',
      userId: 1
  })
  .then(response => {
    console.log(response)
    console.log(response.data)
    this.filter = response.data
  })
  .catch(e => {
    this.errors.push(e)
  })
}

邮递php

<?php
header('Content-Type: application/x-www-form-urlencoded');


echo json_encode($_POST);
?>

请求已完成,状态为200,但返回空对象“[]”

注意:当我将postendpoint更改为jsonplaceholder工具时,它可以正常工作。

共有3个答案

李法
2023-03-14

对我来说,问题是我在url中使用的是http而不是https。服务器返回的http状态代码已永久移动(到https站点)。浏览器或命令行客户端(curl)遵循这些重定向。我的代码没有。解决方案是在url中使用https。

东方志尚
2023-03-14

使用axios发送的数据不会放入PHP的$\u POST中。相反,它位于请求体中,很可能是json格式。要获取它,请尝试以下代码:

function getRequestDataBody()
{
    $body = file_get_contents('php://input');

    if (empty($body)) {
        return [];
    }

    // Parse json body and notify when error occurs
    $data = json_decode($body, true);
    if (json_last_error()) {
        trigger_error(json_last_error_msg());
        return [];
    }

    return $data;
}


$data = getRequestDataBody();
var_dump($data)

或者你可以像另一个答案所建议的那样使用FormData

詹钊
2023-03-14

我想你可以试试这个,应该是数据类型的问题。

var data = new FormData();
data.append('title', 'foo');
data.append('body', 'bar');

axios.post('api/post.php', data)
    .then(response => {
        console.log(response)
        console.log(response.data)
        this.filter = response.data
    })
    .catch(e => {
        this.errors.push(e)
});
 类似资料:
  • 我想将文件上载到服务器,但数组似乎为空。 我下面的代码有问题吗? PHP代码 Print_r($_FILES['fotos'])向我展示了这个:数组([name]=

  • 问题内容: 我有一个表示颜色的整数的MxN数组(例如RGBA格式,但是很容易更改)。我想将它们转换为MxN位图或其他可以渲染到屏幕上的东西(例如OpenGL纹理)。有没有一种快速的方法来做到这一点?遍历数组并将它们绘制到画布上太慢了。 问题答案: 试试这个,它将为您提供位图。 编辑: 希望对您有帮助。

  • 问题内容: 我有一个数组 如您所见,键0与1、3和4相同。键2与它们全部不同。 在它们上运行array_unique函数时,唯一剩下的是 有什么想法为什么array_unique无法按预期工作? 问题答案: 这是因为使用字符串比较来比较项目。从文档: 注意:当且仅当(string)$ elem1 ===(string)$ elem2,两个元素才被视为相等。换句话说:当字符串表示相同时。将使用第一个

  • 我知道要在数组中查找值是否存在,我可以使用indexOf,但如何使用对象数组呢?

  • 我正在处理一个freecodecamp挑战,我想知道为什么我的代码不工作,以及如何纠正它。 目标是“返回一个数组,该数组由每个提供的子数组中的最大数组成。” 我的尝试是使用减少作为映射函数映射输入数组: 当前输出为: 我应该如何修复我的代码?

  • 我有一个名为的数组。它包含一系列对象,每个对象都包含一个名为的属性。我想在数组中的每个对象上重复该数组的内容。 如果我重复通过它在单个数组上运行良好。 但是,我想继续重复,就像这样: 等等。 我的(不正确)解决方案当前看起来如下: 在这种情况下,我假设$index将代表递增的整数,但它不起作用。有人能帮忙吗? 提前感谢...