目前构建一个restful API只是为了练习,但我注意到的一件事是,根据我阅读它的方式,它要么抛出错误,要么没有结果,要么实际工作。前端是React使用axios库进行请求。后端只是简单的PHP。
我有两种阅读方式,
-
file_get_contents("php://input")
当我从前端提出请求时,我可以读取表单数据并使用它。
然而,当我寄来邮差时,它什么也不回。建议使用的人员
x-www-form-urlencoded
所以我试了一下,但结果是一样的。其他人建议阅读superglobals
-
$_POST['item']
在poster中,它可以读取数据,这没有问题,但如果我用axios发送,它会抛出一个未定义的数组键警告。
我希望能够在使用Postman构建api时对其进行测试,而不必在以后将其合并到实际应用程序中时进行更改。从这一点上看毫无头绪,所以任何建议都会有所帮助。如果我做了蠢事,我会道歉
Axios部分:
let fdata = {
email: "testemail",
achternaam: "testachternaam",
};
axios
.post("http://localhost/api/test", fdata)
.then((result)=>{
console.log(result.data)
})
PHP部分
header('Access-Control-Allow-Origin: *');
header("Access-Contro-Allow-Headers: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers,Authorization ,X-Requested-With");
header('Content-Type: application/json; charset=utf-8');
print_r($data json_decode(file_get_contents("php://input"))); // this works in with axios, but doesn't work with postman
echo $email = $_POST['email'];
// works in postman, but not with axios
在邮差里,我把完全一样的东西寄进来
formdata
而且
x-www-form-urlencoded