Javascript 从JS到PHP的POST请求:错误的JSON
当我向php发送post请求时,它会将字符串返回给我,我对此无能为力 这是我对JS的要求: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) "" } 我需要两个变量。第一个用户名和第二个信息。我怎么做?可以分开这条线吗?还是我发送
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);