【问题标题】:how to handle array of objects in fetch calls from javascript (react-native) to PHP?如何处理从 javascript(react-native)到 PHP 的 fetch 调用中的对象数组?
【发布时间】:2023-04-01 06:12:01
【问题描述】:

我在 javascript 中有一个类似于下面的对象数组

const userId = 3234
const filterParams = [
   { beds: 0 - 5},
   { baths: 0- 5}
 ]

这是我从 react native 进行的 fetch 调用

const res = await fetch(baseURL, {
      method: 'POST',
      headers: {
        Accept: 'application/json',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        userId,
        filterParams
      })
    });

这就是我试图在 PHP 服务器中访问的方式

$json = file_get_contents('php://input');
$obj = json_decode($json,true);
$user_id = $obj['userId'];
$metaValue = $obj['filterParams'];
echo $filter_params; // Nothing printing
echo $user_id; // Nothing printing

我在 fetch 调用中传递了它,并在 PHP 中获取它以将其保存在数据库中。但我什么也没打印出来。

【问题讨论】:

  • 通过一个宁静的 API 服务?你的问题到底是什么?按原样传递。
  • 我简要解释了我的问题
  • 所以在您的代码中添加var_dump()s 和print_r()s 和echos 和exits。检查并逐步执行您的代码。
  • 我的问题是我做得对吗? var_dump 打印 NULL,Echo 和 print_r 什么也不打印
  • 所以var_dump($json)。你看到你的字符串了吗?不。然后检查实际请求:进入您的 chrome 调试器,进入网络选项卡,然后检查请求。正确的 JSON 字符串是否到达服务器?不,然后检查您的 fetch 语句。 body 是向服务器发送 json 字符串数据的正确语法吗? ...逐步调试,并调试应用程序的每个部分,直到找到它不工作的原因。

标签: javascript php react-native fetch


【解决方案1】:

您应该使用JSON.stringify 之类的东西序列化您的数据,并将该数据在 POST 请求的正文中传递给您的服务器。在您的服务器上,您需要对其进行反序列化,因为您正在使用 PHP 实现这一目标的最佳方法是使用 json_decode

此时您将可以访问您的数据并将其保存在您的数据库中

【讨论】:

    【解决方案2】:

    也许您可以使用 FormData 类。 例如:

    let data = new FormData();
    data.append("key", value)
    
    //Send the request to the REST API
    

    关于 FormData 的完整参考可以在这里找到:https://developer.mozilla.org/fr/docs/Web/API/FormData

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多