Javascript 从JS到PHP的POST请求:错误的JSON

Javascript 从JS到PHP的POST请求:错误的JSON,javascript,php,ajax,post,Javascript,Php,Ajax,Post,当我向php发送post请求时,它会将字符串返回给我,我对此无能为力 这是我对JS的要求: axios.post("ajax.php", JSON.stringify(myObj)) 这就是我在PHP中获取数据(来自JS)的方式: 这就是$data var_dump的响应 array(1) { ["{"username":"rew","info":"rew"}"]=> string(0) "" } 我需要两个变量。第一个用户名和第二个信息。我怎么做?可以分开这条线吗?还是我发送

当我向php发送post请求时,它会将字符串返回给我,我对此无能为力

这是我对JS的要求:

axios.post("ajax.php", JSON.stringify(myObj))
这就是我在PHP中获取数据(来自JS)的方式:

这就是$data var_dump的响应

array(1) {
  ["{"username":"rew","info":"rew"}"]=>
  string(0) ""
}
我需要两个变量。第一个用户名和第二个信息。我怎么做?可以分开这条线吗?还是我发送了错误的格式

我的完整PHP代码

$data = array(
  "userName" => $_POST['userName'],
  "pass" => $_POST['pass']
);
$opts = array(
  'http'=>array(
    'method'  => 'POST',
    'content' => json_encode($data),
    'header'  => "Content-Type: application/json\r\n" .
                 "Accept: application/json\r\n" .
                 "Authorization: Basic " . base64_encode("$username:$password"),
  )
);
$context = stream_context_create($opts);
$file = file_get_contents($remote_url, false, $context);
echo $file;
和var myObj

let myObj = {
    "username": "rew",
    "info": "rew"
};

似乎您不需要将对象字符串化。
axios
的默认内容类型将是
application/json
,因此应该可以:

axios.post("ajax.php", myObj);

至于
$\u POST
将只提供内容类型
应用程序/x-www-form-urlencoded
多部分/表单数据
,您需要更改代码以解码原始输入:

json\u解码(文件\u获取\u内容('php://input",对),;

使用json\u解码功能。更多信息在这里可能重复我也这么认为。但在本例中,它返回空数组。json_decode返回null。你能用
myObj
示例和你使用的php代码更新你的问题吗?@AleksKharchenko如果你把问题弄得太复杂了,不要在这里使用
$\u POST
。或者这是一个要求?用'php://input“-它正在工作,最后我得到了正确的JSON:)不,这不是要求,我只是在寻找正确的解决方案
axios.post("ajax.php", myObj);