我正忙于测试 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"));
- 1 回答
- 0 关注
- 130 浏览
添加回答
举报
0/150
提交
取消