![](/img/trans.png)
[英]PHP not populating $_POST when using x-www-form-urlencoded
[英]Post method works in raw but not in x-www-form-urlencoded POSTMAN
这可能很愚蠢,但我希望你们能启发我为什么这样做
图片:使用RAW的POST,但使用x-www-form-urlencoded会使所有值都为空
图片:使用x-www-form urlencoded的POST
这是PHP方面
<?php
// required headers
header("Access-Control-Allow-Origin: http://localhost/mediapp/");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
// files needed to connect to database
include_once 'config/database.php';
include_once 'Objects/user.php';
// get database connection
$database = new Database();
$db = $database->getConnection();
// instantiate user object
$user = new User($db);
// get posted data
$data = json_decode(file_get_contents("php://input"));
我也尝试更改内容类型,但结果仍然相同。 我是否没有正确使用POSTMAN,是否需要在php端进行更改? 我还需要将其与x-www-form-url-encoded一起使用
x-www-form-urlencoded
会像
firstname=mikey&lastname=dalisay
为什么json_decode()
返回null,请使用parse_str
将其转换为PHP对象
parse_str(file_get_contents("php://input"), $data);
var_dump($data);
echo $data['firstname'];
如果您想同时接受raw
和x-www-form-urlencoded
,则可以这样写
$reqBody = file_get_contents("php://input");
$data = json_decode($reqBody);
if(!$data){
parse_str($reqBody, $data);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.