我正在向 PHP 文件发布一个对象,问题是,我没有像我们在表单中那样使用 name="" ,而是发布一个对象,请看: const done = async obj => { console.log("sending JSON to PHP..."); await fetch("myFile.php", { method: "post", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(obj) } )}let obj = { email: "ahmad@example.com", message: "salam"}const send = async (obj)=>{ let response = await done(obj);}send(obj);问题是,PHP 将如何解析发布的参数?这是我尝试过的:$email = $_POST['email'];$message = $_POST['message'];但像往常一样,这不起作用。[编辑]:额外问题:以 JSON 格式发送 POSTED 数据重要吗?使用 fetch API 时这样做重要吗?
2 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
尝试这样的事情
$body = file_get_contents('php://input');
$data = json_decode($body , true);
$email = $data['email'];
$message = $data['message'];
哈士奇WWW
TA贡献1799条经验 获得超6个赞
当您使用 stringify 时,您的 php 文件将收到 json 对象的字符串表示形式。所以你必须使用 json_decode 将字符串转换为 php 对象。
$json = file_get_contents('php://input');
$data = json_decode($json);
$email = $data->email;
进一步说明:如果请求正文包含 JSON 的字符串表示形式,则内容类型标头将为 text/plain,即使 Content-Type 设置为 application/json。因此,在 php 文件中,您必须首先使用 file_get_content 作为字符串读取正文中的原始文本,并将其转换为 php json 对象。
- 2 回答
- 0 关注
- 134 浏览
添加回答
举报
0/150
提交
取消