`

Fetch API Error: Body not allowed for GET or HEAD requests with UUID

    博客分类:
  • js
阅读更多

报错说明:

bog.js:35 [ERROR] [2018.10.24 10:58:47] 127.0.0.1 [uuid] [thread] [class] - API Error: Body not allowed for GET or HEAD requests with UUID: 49ece288-7a32-4cbe-a421-1439f8ff3f6b when calling /xxx.com/get-xxx

 

事件分析:

》排查bog.js line35,bog.js是无辜的啦,明显我只是输出日志的工具而已。

》排查uuid,查看GitHub issues和源代码,我也是无辜的,仅仅生成一个唯一ID。

》排查Fetch.js请求的Request Header

    经过一番排查,定位于前后代码对比

   

// Before Modified
{
  method: 'POST',
  credentials: 'same-origin',
  headers: {
    token: 'xxxx',
  },
  body: params,
}

// After Modified
{
  method: 'GET',
  credentials: 'same-origin',
  headers: {
    token: 'xxxx',
  },
  body: params,
}

 

    发现后端的请求method把之前的post改成了get请求,导致fetch.js GET请求发送body的信息错误,引起上面的报错提示。

 

解决方案:

    在公共request的function中,判断若是get请求并且body不等于空,则把参数添加到request请求url的后面即可解决。

if (/^get$/i.test(optData.method) && optData.body) {
  apiPath += `${apiPath.indexOf('?') === -1 ? '?' : '&'}${optData.body.toString()}`;
  optData.body = null;
}

 

分享到:
评论

相关推荐

    fetchAPI:使用提取API进行GET和POST数据

    **fetchAPI: 使用提取API进行GET和POST数据** 在现代Web开发中,数据交换是必不可少的,`fetch API`提供了一种优雅的方式来处理HTTP请求,包括GET和POST操作。相较于传统的XMLHttpRequest,`fetch`更加简洁,易于...

    解决因文件权限导致git fetch命令执行失败的问题

    最近在一个基于 git 的发布系统中拉取代码,发现无法拉取最新的提交记录,通过调试和查看日志文件找到一行错误:error: cannot open .git/FETCH_HEAD: Permission denied,原因是文件权限问题导致。 问题原因 ...

    electron-main-fetch在Electron的主要进程中使用浏览器FetchAPI

    `electron-main-fetch`库就是为了满足这个需求而诞生的,它允许我们在Electron的主要进程中使用与浏览器相同的Fetch API。 Fetch API是一种现代、统一的接口,用于在Web上发起HTTP请求。它提供了异步操作,返回...

    how-to-use-fetch-api:此源代码展示了如何使用fetch API-Show source code

    【如何使用Fetch API:深入解析源代码】 Fetch API是现代Web开发中用于处理网络请求的重要工具,它替代了传统的XMLHttpRequest。本指南将通过源代码分析,深入讲解如何有效地使用Fetch API。 一、Fetch API的基本...

    react-fetch-api:在React Native中使用Fetch API

    难易程度**教程请参阅以下查看应用程序中使用的API: : 创建组件ListUsers 在ListUsers将通过Fetch API从API中获取数据,其中的功能可以获取用户列表,删除用户和添加用户。 创建组件FormCreateUser来处理新添加的...

    javascript-fetch-api:使用fetch-API以Java脚本制作的API

    JavaScript Fetch API 是一种现代的、基于Promise的网络请求接口,用于替代传统的XMLHttpRequest。它使得在JavaScript中处理HTTP请求变得更加简洁和优雅。Fetch API被设计为一个轻量级且易于使用的解决方案,支持...

    Python解决pip install时出现的Could not fetch URL问题

    使用python直接使用pip install xx时,出现 Could not fetch URL https://pypi.python.org/simple/requests/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate ...

    前端API集成:Fetch API.zip

    史上最全web前端技术全套教程,包括: 前端API集成 前端基础知识 前端开发最佳实践 前端性能优化 前端构建工具 前端框架和库 前端测试工具 前端状态管理 等流行技术的系列教程

    fetch-client:基于 Fetch API 的 http 客户端

    //default headers for all requests var fetchClient = new Fetch ( '<baseURL>' , headers ) ; //POST var body = { } ; fetchClient . POST ( 'p/a/t/h' , body ) . then ( ( res ) => res . json ( ) ) . ...

    FetchApi:使用Javascript提取APi

    Fetch API是现代JavaScript中用于网络请求的标准方法,它取代了传统的XMLHttpRequest(XHR)API,提供了更简洁、更直观的接口来与服务器进行数据交互。本文将深入探讨Fetch API的基本用法、特性以及如何在实际项目中...

    Node.js-trae一个简约基于FetchAPI的浏览器HTTP客户端

    这个库的出现是为了简化在浏览器中进行网络请求的流程,提供更优雅的API,同时保持与Fetch API的兼容性。 **Fetch API的介绍** Fetch API是Web开发中的一个重要部分,用于处理网络请求。相比于传统的...

    fetch-friends:Fetch API的通用工具

    Fetch API的通用工具。 fetch在网络上无处不在。 fetch-friends是最小的,自动咖喱工具库来装点fetch与,否则你可能切换到了,在这个过程中混淆其他开发商另一个HTTP库的行为。 无需仅因需要超时而将fetch替换为库...

    Fetch-API:Fetch API:Consumindo uma API Rest com JavaScript

    提取API 细节(-Curso Alura) 前端API的使用是必需的。 Entenda como utilizar ométodo提取了消费者的uma API。 可以使用CRUD实用程序从HTTP提取信息。 详细信息请参见HTTP获取信息。 Aprenda como funcionam...

    docker容器中 bash: vi: command not found,docker apt-get 异常 Temporary failure resolving

    bash: vi: command not found, 场景: 因为 docker里面没有这个命令,我们安装一下 apt-get update apt-get install vim 如果 这个时候 安装也还是会出现 异常 root@446d7cf1606c:/etc/mysql# apt-get update ...

    fetchAPI-replacementXHR:练习XHR的Fetch API替换

    在现代Web开发中,`Fetch API`逐渐取代了传统的`XMLHttpRequest (XHR)`,成为处理异步数据请求的标准方法。`Fetch API`提供了更简洁、更直观的接口,且更符合Promise规范,使得异步编程更加优雅。接下来,我们将深入...

    make-fetch-happen:加入失败者,我们正在提出要求!

    安装$ npm install --save make-fetch-happen 目录例子const fetch = require ( 'make-fetch-happen' ) . defaults ( { cacheManager : './my-cache' // path where cache will be written (and read)} )fetch ( '...

    react-fetch-hook:React挂钩可方便地使用Fetch API

    React获取挂钩 React挂钩可方便地使用Fetch API。 小(556 B)。 按计算包括Flow和TypeScript类型import React from "react" ;import useFetch from "react-fetch-hook" ;const Component = ( ) => { const { is...

    React-custom-hook-with-fetch-api:如何使用api请求http创建自定义钩子函数组件

    throw new Error('Network response was not ok'); } return response.json(); }) .then(data => { setData(data); setLoading(false); }) .catch(error => { setError(error); setLoading(false); }); ...

    New-Fetch-Api:从本地或外部api的textjson数据中获取数据

    在JavaScript编程领域,`fetch API` 是一种现代的、用于异步获取网络资源的方法,它替代了原有的XMLHttpRequest。本文将深入探讨`New-Fetch-Api`,它扩展了基本的fetch API,允许开发者从本地或外部API获取text/json...

    Node.js-Ky一个基于浏览器FetchAPI的简洁优雅HTTP客户端

    const kyInstance = ky.create({ fetch: customFetch }); ``` Ky的源代码位于`sindresorhus-ky-63386ba`这个压缩包中,如果你想要深入理解其内部实现或进行定制,可以查看源代码。这个库由Sindre Sorhus维护,他...

Global site tag (gtag.js) - Google Analytics