我正在向 PHP 文件發(fā)布一個對象,問題是,我沒有像我們在表單中那樣使用 name="" ,而是發(fā)布一個對象,請看: 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 將如何解析發(fā)布的參數(shù)?這是我嘗試過的:$email = $_POST['email'];$message = $_POST['message'];但像往常一樣,這不起作用。[編輯]:額外問題:以 JSON 格式發(fā)送 POSTED 數(shù)據(jù)重要嗎?使用 fetch API 時這樣做重要嗎?
2 回答

叮當(dāng)貓咪
TA貢獻1776條經(jīng)驗 獲得超12個贊
嘗試這樣的事情
$body = file_get_contents('php://input');
$data = json_decode($body , true);
$email = $data['email'];
$message = $data['message'];

哈士奇WWW
TA貢獻1799條經(jīng)驗 獲得超6個贊
當(dāng)您使用 stringify 時,您的 php 文件將收到 json 對象的字符串表示形式。所以你必須使用 json_decode 將字符串轉(zhuǎn)換為 php 對象。
$json = file_get_contents('php://input');
$data = json_decode($json);
$email = $data->email;
進一步說明:如果請求正文包含 JSON 的字符串表示形式,則內(nèi)容類型標(biāo)頭將為 text/plain,即使 Content-Type 設(shè)置為 application/json。因此,在 php 文件中,您必須首先使用 file_get_content 作為字符串讀取正文中的原始文本,并將其轉(zhuǎn)換為 php json 對象。
- 2 回答
- 0 關(guān)注
- 179 瀏覽
添加回答
舉報
0/150
提交
取消