首页 > 解决方案 > 从 JS FormData 在 PHP 端从 PUT 和 DELETE 获取数据

问题描述

我正在尝试学习 REST API 并陷入使用 PUT 解码来自 JS FormData 的数据的问题

JS:

newF = async (e) => {
  let formData = new FormData();
  formData.append('key1', 'value1');
  formData.append('key2', 'value2');

  let response = await fetch(api, {
    method: 'PUT',
    body: formData
  });

  let result = await response.json();
  console.log(result)
}
newF()

PHP:

if ($_SERVER['REQUEST_METHOD'] === 'PUT') { 
    $myEntireBody = file_get_contents('php://input'); 
    echo  json_encode($myEntireBody);
}

这是我得到的最接近的数据,但返回给我的数据格式很奇怪:

-----------------------------42245388588346180811466041785

Content-Disposition: form-data; name="key1"



value1

-----------------------------42245388588346180811466041785

Content-Disposition: form-data; name="key2"



value2

-----------------------------42245388588346180811466041785--

我不知道如何使用键从中获取值,我尝试var damp $_PUT以多种方式解码/编码并且无法获取值。

我尝试关注以下内容:HTTP 协议的 PUT 和 DELETE 及其在 PHP 中的用法以及为什么 PHP 无法从 Js FormData fetch 中获取 $_POST 数据?没有运气。

我只是想知道如何从FormDataPHP 端的 JS 中获取值,并将它们回显到 JS 响应以确认它。

标签: javascriptphpapirestform-data

解决方案


推荐阅读