📌  相关文章
📜  使用 fetch API 的简单 POST 请求

📅  最后修改于: 2022-05-13 01:56:18.440000             🧑  作者: Mango

使用 fetch API 的简单 POST 请求

fetch() 方法与 XMLHttpRequest 和 Axios 请求一样,用于将请求发送到服务器。主要区别在于 Fetch API 使用 Promises,这使得 API 更简单、更干净。您将使用 fetch API 获得整个 Get 和 Post 方法

句法:

  • fetch(url, { config }) 
    .then(res => { 
        // Handle response 
    }) 
    .catch(err => { 
        // Handle errors 
    }) 
    
  • 由于 fetch 返回一个 Promise,我们也可以使用async/await关键字来发出请求:
    async () => {
      const resp = await fetch('http://example.com/example.json');
      // Handle response
    }
    

使用 fetch() 创建 POST 请求: POST 请求广泛用于向服务器提交表单。

fetch(url, {
    method: 'POST',
    headers: {
      "Content-type": "application/x-www-form-urlencoded; charset=UTF-8"
    },
    credentials: 'include',
    body: 'foo=bar&lorem=ipsum'
  })
  .then(res.json())
  .then(res => {
    // Handle response 
    console.log('Response: ', res);
  })
  .catch(err => {
    // Handle error 
    console.log('Error message: ', error);
  });

解释:

  • 要创建 POST 请求,我们需要为请求指定一些参数,例如方法、标头等。首先,我们需要指定请求方法(GET、POST、DELETE 等),在我们的例子中是 POST。接下来是 Content-type,它告诉客户端返回数据的实际内容类型是什么。凭据键是可选的,如果您想使用 cookie 等凭据发出获取请求,则应使用该键。然后我们设置包含我们希望传递给服务器的数据的主体。
  • fetch() 请求的响应是一个流对象,这意味着当我们调用 json() 方法时,会返回一个 Promise,因为流的读取是异步发生的。
  • 如果 API 返回的状态为 201(Created 的 HTTP 状态码),则可以访问 API 返回的数据-res(response)。如果发生错误,将执行 catch 块内的代码。