为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Vanilla Javascript 发布到 Php 文件

使用 Vanilla Javascript 发布到 Php 文件

PHP
慕尼黑的夜晚无繁华 2023-07-01 17:38:46
我正在向 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'];


查看完整回答
反对 回复 2023-07-01
?
哈士奇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 对象。


查看完整回答
反对 回复 2023-07-01
  • 2 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信