fetch 报错 Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.

翻译过来就是 无法在window上执行fetch:使用get/head方法请求不能有body

错误代码:src/api/index.js

import Fetch from '../fetch/index'
import jk from './jk'
export default {
verifycodeApi: params => Fetch(jk.verifycode, {method: 'get',body: params})
}

这里的get方法中,接受参数用了body,所以报错。

解决方案:

在封装的fetch.js中

const Fetch = (url, option = {}) => {
// 格式化get请求的数据(fetch的get请求需要需要将参数拼接到url后面)
if (option.method === 'get') {
if (option.data) {
url = url + formatUrl(option.data)
}
} // 对非get类请求头和请求体做处理
if (option.method === 'post' || option.method === 'put' || option.method === 'delete') {
option.headers['Content-Type'] = option.headers['Content-Type'] || 'application/json'
option.body = qs.stringify(option.body)
// option.body = JSON.stringify(option.body)
} delete option.data
}

重点是标橙色的代码,这里是为了给get方法创建一个data的属性,在拼接完url以后,最后用delete删除这个data的属性

那么,在src/api/index.js

// api文件存放接口文件夹
import Fetch from '../fetch/index'
import jk from './jk'
export default {
manageloginApi: params => Fetch(jk.managelogin, {method: 'post', body: params}),
verifycodeApi: params => Fetch(jk.verifycode, {method: 'get', data: params})
}

就可以用data属性存放get传过来的参数,避免了body传参的报错

fetch get方法的时候报错的更多相关文章

  1. java调用本地方法的时候报错 could not find the main class:xx.program will exit

    如图所示,当在java调用本地方法的时候报错 我的解决办法是把dll文件放到System.out.println(System.getProperty("java.library.path& ...

  2. js Fetch返回数据res.json()报错问题

    前言 一直以来在简单的场景中经常使用fetch代替第三方请求库, fetch是JavaScript的原生函数, 简单.高效.快速.稳定.可定制等等诸多优点.一直也是用着很是舒服,直到有一天它竟然报错了 ...

  3. 执行发送邮件Send方法时,报错:邮箱不可用。 服务器响应为: 5.7.1 Unable to relay for xxx@xxx.com

    .net代码在执行发送邮件Send方法时,往往出现这个的报错: 邮箱不可用. 服务器响应为: 5.7.1 Unable to relay for xxx@xxx.com 这个问题应该是smtp的设置问 ...

  4. 使用jieba导入引用方法时,报错AttributeError: module 'jieba' has no attribute 'cut'

    一.问题描述 import jieba导入后,使用jieba.cut()方法时报错AttributeError: module 'jieba' has no attribute 'cut' 二.问题分 ...

  5. Android 使用MediaRecorder录音调用stop()方法的时候报错【转】

    本文转载自:http://blog.csdn.net/u014737138/article/details/49738827 这个问题在网上看到了太多的答案,一直提示说按照官网的api的顺序来,其实解 ...

  6. oracle数据库升级dbua操作阻塞解决方法(解决ORA-32004报错)

    操作环境 1.SuSE11sp3操作系统 2.oracle 11.2.0.3版本升级到11.2.0.4版本 问题现象   oracle 11.2.0.3版本升级到11.2.0.4版本时执行dbua命令 ...

  7. windows的bpython安装方法以及数据库报错--记录

    ---恢复内容开始--- 安装bpython的时候发现了一个博客讲解如何成功安装bpython,分享一下链接http://www.cnblogs.com/zhaojiedi1992/p/zhaojie ...

  8. 利用powerdesigner创建表模型后导出sql语句方法,以及报错 Generation aborted due to errors detected during the verification of the model.的解决办法

    今天用powerdesigner建了表模型,下面先说一下导出sql语句的步骤. 1.选项 2. 然后就报错了,下面说解决办法,很简单. 你没看错,把模型检查的√去掉就行了~~ 导出表名不带双引号的设置 ...

  9. python-selenium使用send_keys()方法写中文报错的解决方法

    问题描述: 自动化操作页面,输入中文姓名: # coding=utf-8 url = "http://dealer.bitauto.com/50002218/zuidijia/" ...

随机推荐

  1. ios开发中字符串的常用功能总结

    1.分割字符串 NSString * str1 = @"123/456"; NSArray * arr1 = [str1 componentsSeparatedByString:@ ...

  2. 小甲鱼Python第六讲课后习题

    python中被看作假:FALSE  none 0  ‘ ’  " "  ( ) [ ] { },其他一切都被解释为真 0.Python 的 floor 除法现在使用“//”实现, ...

  3. python之装饰器篇

    一.基本装饰器 基本装饰器的作用: 在不改变原函数的基础上, 通过装饰器, 给原函数新增某些功能 实现方法: 在原函数上加 @装饰器名字 其中@叫做语法糖 定义装饰器 第一层函数传入参数(用于传入原函 ...

  4. 在Ubuntu18.04下配置hadoop集群

    服务器准备 启动hadoop最小集群的典型配置是3台服务器, 一台作为Master, NameNode, 两台作为Slave, DataNode. 操作系统使用的Ubuntu18.04 Server, ...

  5. 【C++】C++中的字符和字符串

    目录结构: contents structure [-] 定义和初始化string string对象上的操作 处理string对象中的字符 C风格字符串 标准库类型string表示可变长的字符序列,使 ...

  6. SQL 数据库结构化查询语言

    1.数据库 常见数据库 MySQL:开源免费的数据库,小型的数据库. Oracle:收费的大型数据库,Oracle 公司的产品 DB2:IBM 公司收费的数据库,常应用在银行系统中 SQLServer ...

  7. caffe可重入单例机制分析

    一个函数可重入是指该函数可以被多个线程同时调用.大多数函数都不是可重如的,因为很多函数会修改静态数据结构里的内容,如果多个线程同时调用,势必破坏共享的静态结构.可以在不改变公共接口的情况下,将一个非重 ...

  8. Android 源码学习

    工具篇:如何使用 Visual Studio Code 阅读 Android 源码:https://jekton.github.io/2018/05/11/how-to-read-android-so ...

  9. Sublime Text 输入法跟随光标

    通过PackageControl安装“IMESupport”,重启Sublime Text3,即可解决:  注:如项目自述,仅支持Windows.

  10. ios调试-查看日志

    连上mac,然后打开“console.app”, 左侧设备里选这个设备.