来自反应发送不正确(空)值的 Https 请求

Posted

技术标签:

【中文标题】来自反应发送不正确(空)值的 Https 请求【英文标题】:Https request from react sending incorrect(null) values 【发布时间】:2021-01-13 03:32:51 【问题描述】:

我一直在尝试发出 http PUT 请求以向服务器发送数据。每次,当我尝试发送请求时,服务器中的数据都会变为空。我已经通过发送正确格式的数据来测试服务器端代码,似乎服务器端工作正常。回到客户端代码,我注意到在获取操作期间,响应中的数据变为“ReadableStream”。不知道实际上是什么意思。如果可以从以下信息中找到错误,任何人都可以帮我找出错误。 我正在尝试从反应组件发送数据:

updateData(data)

我要发送的数据格式是一个对象:

first:"first", second:"second"

然后在我的 api 处理程序中:

const updateData = async (data) => 
const resource = await getResource('PUT', 
    data,
  );
const url = `$process.env.updateAPI/Update`;
  return handleFetch(url, resource);
;

然后在我的handleFetch函数中:

  const handleFetch = async (url, resource) => 
  const res = await fetch(url, resource);

  if (!res.ok) 
    throw new Error(`Request failed, status $res.status`);
  

  const resData = await res.json();
  return resData;
;

getResource 函数接受参数并返回所需的方法、数据和提供'Content-Type': 'application/json', 的标头并处理数据,例如:body = JSON.stringify(data);

在调试过程中,我注意到 fetchHandlers 的 res 变成了这样:

我实际上很困惑,为什么在正文中数据变为“ReadableStream”而不是我尝试发送的实际数据,或者这是我有空值的问题。任何人都可以帮助我吗?,将不胜感激。提前致谢

【问题讨论】:

这能回答你的问题吗? Retrieve data from a ReadableStream object? 【参考方案1】:

如果您的数据返回类型不是 JSON 或者您不想要 JSON,则使用 text()

举个例子:

fetch('https://jsonplaceholder.typicode.com/posts/1')
  .then(function(response) 
    return response.text();
  ).then(function(data) 
    console.log(data); // this will be a string
  );

【讨论】:

返回数据类型在我的情况下是 json

以上是关于来自反应发送不正确(空)值的 Https 请求的主要内容,如果未能解决你的问题,请参考以下文章

跨域请求被阻止 - 来自反应本地主机的 API 请求

反应快速获取请求不发送数据

发送新消息 MAILCHIMP,返回空

curl模拟post发送没反应

Spring Boot POST 请求返回 Null 值的端点

如何通过反应以快递方式向mailchimp发送发布请求