为了账号安全,请及时绑定邮箱和手机立即绑定

Axios POST 请求异常数据格式

Axios POST 请求异常数据格式

PHP
三国纷争 2023-06-18 16:08:17
我正忙于测试 Node.JS 的 Axios 插件,但我在处理 POST 请求时遇到了一些困难。为了测试,我有一个基本的 PHP 脚本// Identify GET Requestif(!empty($_GET)) {   $type = "Req Type : GET";   $params = $_GET;   $array = $_GET["array"];   $arrayVerify = gettype($array);}// Identify POST Requestif(!empty($_POST)) {   $type = "Req Type : POST";   $params = $_POST;   $array = $_POST["array"];   $arrayVerify = gettype($array);}$response = new stdClass();$response->type = $type;$response->array = $array;$response->arrayVerify = $arrayVerify;echo json_encode($response);exit();作为初始测试,我按如下方式使用 JQuery Ajaxdata = {};data.array = ["One", "Two", "Three"];$.ajax ({   url      : "url_goes_here",   type     : "POST",   dataType : "json",   data     : data,   success  : function(res) { console.log(JSON.stringify(res)); },   error    : function(res) { abandonAllHope(); }});我得到以下输出{"type":"Req Type : POST","array":["One","Two","Three"],"arrayVerify":"array"}这看起来像格式正确的 JSON,数组仍然是一个数组,PHP 将其识别为一个很好的数组然后当我尝试使用来自 Node.js 的 Axios 时var axios = require("axios");var data = new URLSearchParams();data.append("array", ["One", "Two", "Three"]);axios ({   url     : "url_goes_here",   method  : "POST",   data    : data}).then(function(res) { console.log(JSON.stringify(res.data)); }).catch(function(res) { abandonAllHope(); });我得到以下输出{"type":"Req Type : POST","array":"One,Two,Three","arrayVerify":"string"}该数组似乎只是值的串联,PHP 将其识别为字符串JQuery 似乎做了我预期的事情,但 Axios 没有,这是为什么?我如何告诉 Axios 将数据用作 JSON?
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

使用您已经尝试过的选项:


var axios = require("axios");

var data = {};

data.array = ["One", "Two", "Three"];

axios ({

   url     : lv_url,

   method  : "POST",

   params  : data

})

.then(function(res) { console.log(JSON.stringify(res.data)); })

.catch(function(res) { });

return;

但是在 PHP 端,您不会填充$_POST,而是使用php://input:


 $data = json_decode(file_get_contents("php://input"));


查看完整回答
反对 回复 2023-06-18
  • 1 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信