fetch概述



看一个基本的例子:
服务端代码:

app.get('/fdata',(req,res)=>{setTimeout(function(){res.send('this is content retrived by fetch method')},3000)
})

测试:

<script>fetch('http://127.0.0.1:9999/fdata').then((data) => {return data.text() // data.text()返回的是一个promise对象}).then((result) => { // 调用then这里获取的才是真正的数据console.log(result)})</script>

等了几秒以后控制台输出:

fetch请求参数

fetch之get请求参数


我们再看下面的代码:

// 服务端
app.get('/books',(req,res)=>{setTimeout(function(){console.log(req.query)res.send('传统参数传递:' + JSON.stringify(req.query))},3000)
})
// 这里我们用旧的方式传入参数,method:'get'写不写无所谓,默认就是get
fetch('http://127.0.0.1:9999/books?id=123',{method:'get'}).then((data) => {return data.text()}).then((result) => {console.log(result)})

结果:

我们现在换restful风格的url:

那么在服务端我们也要修改一下路由:

这里要用:id来接收传来的数据,express需要用req.params来获得查询数据

结果:

这里有个细节注意一下:

这里的参数999传过去的时候,在服务端:

路由接收传来的参数的变量名是可以自定义的,不一定非要是id,保持统一就可以了

fetch之delete请求参数

// 服务端
app.delete('/books/:id',(req,res)=>{setTimeout(function(){res.send('Delete请求参数传递:' + req.params.id)},3000)
})
fetch('http://127.0.0.1:9999/books/666',{method:'delete'}).then((data) => {return data.text()}).then((result) => {console.log(result)})

结果:

fetch之post请求参数

  1. 发送x-www-form-urlencoded类型的数据

    上代码:
// 服务端
const bodyParser = require('body-parser')
// 配置body-parser
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))app.post('/books', (req, res) => {// body就是body-parser处理的console.log(req.body)res.send('Post请求参数传递:' + req.body.uname + '---' + req.body.pw)
})
fetch('http://127.0.0.1:9999/books/',{method:'post',body:'uname=dean&pw=123456',headers:{'Content-Type':'application/x-www-form-urlencoded'}}).then((data) => {return data.text()}).then((result) => {console.log(result)})

发post请求主要就下面这些变化:method,请求体body,头部headers:

结果:


  1. 发送json类型的数据
// 服务端
app.post('/books', (req, res) => {console.log(req.body)res.send('Post请求参数传递:' + req.body.uname + '---' + req.body.age)
})

js代码需要这样修改:

结果:

fetch之put请求参数

app.put('/books/:id', (req, res) => {console.log('req.body:',req.body)console.log('req.params:',req.params)console.log('请求id:',req.params.id)res.send('Put请求参数传递:' + req.body.bname + '---' + req.body.bprice)
})

注意这里::id需要用req.params.id取值

结果:

fetch响应结果


我们看看如何用fetch的json API返回数据:

// 服务端
app.get('/books/json', (req, res) => {// 调用express的json方法res.json({bname:'ES6',bprice:79})
})


结果:

接口调用Fetch方法以及fetch请求参数相关推荐

  1. 国际短信平台接口调用的方法步骤,简单5步快速教程

    如果您需要使用国际短信平台来满足您的业务需求,那么您需要了解短信平台接口调用的方法步骤. 接口调用是指您的应用程序通过网络接口与短信平台进行通信,从而实现向全世界发送短信的功能. 下面是国际短信平台接 ...

  2. 每日一句api Android,金山每日一句 API 接口调用接入方法

    原标题:金山每日一句 API 接口调用接入方法 金山每日一句 API 大家都听说过吧,金山每日一句 API 每次刷新网页都会带来一个新的语句,现在盒子部落公布金山每日一句 API 接口,可以直接在自己 ...

  3. python excel token_python+excel接口自动化获取token并作为请求参数进行传参操作

    1.登录接口登录后返回对应token封装: import json import requests from util.operation_json import OperationJson from ...

  4. 标签中的onclick调用js方法传递多个参数的解决方案

    标签中的onclick调用js方法传递多个参数的解决方案 参考文章: (1)标签中的onclick调用js方法传递多个参数的解决方案 (2)https://www.cnblogs.com/twohea ...

  5. SpringMVC@RequestMapping请求方法限定与请求参数限定

    SpringMVC@RequestMapping请求方法限定与请求参数限定 一.请求方法限定 除了可以对url进行设置,还可以限定请求进来的方法 限定GET方法 @RequestMapping(met ...

  6. @Aspect aop切面获取请求接口类名、方法名、及参数

    1.自定义一个注解,通过将自定义的注解添加到对应的方法上,可实现对该方法进行增强操作 package com.basis.aspect;import java.lang.annotation.Elem ...

  7. Vue接口调用(一)fetch用法

    Vue接口调用

  8. 实战HttpClient 接口调用以及获取token 设置请求头

    简介: HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 java.net 包中已 ...

  9. ashx 接口调用_使用ajax去请求调用ashx的接口

    首先要明白这个是前台去请求后台的接口,把前台的参数传给后台,然后后台给前台一个或多个返回结果. 1.后台的代码如下: /// /// GetInfomationDetail 的摘要说明 /// pub ...

最新文章

  1. 彻底卸载 RAD Studio 2009/2010/XE+ 的步骤
  2. 利用源代码包搭建LAMP
  3. windoes 远程桌面时出现“没有远程桌面授权服务器可以提供的许可证”解决方法
  4. 蚂蚁保护板_南京文明施工规范装修公司哪家好 红蚂蚁装饰标准施工分享你
  5. 开源数据分析工具 CyberChef
  6. oracle占位符怎么打,PL/SQL Challenge 每日一题:2018-7-11 动态SQL中的占位符
  7. CentOS7/RHEL7 systemd详解
  8. AC日记——找最大数序列 openjudge 1.9 10
  9. 财务 - 注册会计师
  10. 计算机硬盘各分区名称,电脑分区后修改磁盘名称的方法步骤
  11. 检测服务器网站端口,检测服务器80端口
  12. Fast Refresh 原理剖析
  13. 量化投资学习必读书目(十五)-《现代投资组合理论与投资分析》
  14. TI DSP TMS320C66x学习笔记之TI Imglib库相关函数(四)
  15. Moonriver Network与Calamari Network完成XCM集成
  16. Peewee fn 用法
  17. android java开发
  18. oracle 通信通道异常,(oracle)ORA-03113: 通信通道的文件结尾错误处理
  19. 华为eNSP基础命令
  20. 013-Flowcharting实现动态可感知网络拓扑

热门文章

  1. 如何用计算机做科学实验,8.用计算机做科学实验 (3)
  2. 钢笔工具的理解和使用
  3. 菲戈挑战足球守门员机器人原理
  4. DW 2023年1月Free Excel 第四次打卡 逻辑判断函数
  5. 读书笔记-LVS之ipvsadm用法
  6. Simulink报错:State derivatives returned by S-function ‘xx‘ in ‘untitled/S-Function‘ during flag = 1...
  7. 【android】AS中使用Junit单元测试和Android JUnit 单元测试
  8. Unity 2D案例学习——制作Roguelike随机地下城
  9. Java Beans 介绍
  10. InitialContext与jndi.properties