fetch发送POST请求

React 封装路由组件 管理路由

import nProgress from "nprogress"

/**** 服务器端接口的封装文件 */
// 路由基地址
export let base = 'xxxxxxxxxxxxxxxx'
/**
 * 管理员登录
 * 接口地址:admin/login
 * 请求方式:POST
 * 请求主体格式:application/json   
 * 请求数据说明:
 * 名称    必填    类型    说明
 * aname    是    string    管理员登录名
 * apwd    是    string    管理员登录密码
 */
export let adminLogin = async (aname, apwd) => {
  // 1. 构建请求地址
  let url = base + 'admin/login'
  let options = {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ aname, apwd })
  }
  // 2. 显示"加载中"提示
  nProgress.start()
  // 3. 异步请求(fetch)
  let res = await fetch(url, options)
  let data = await res.json()
  // 4. 隐藏"加载中"提示
  nProgress.done()
  // 5. 返回响应消息主体
  return data
}

这里使用了 第三方 进度条组件 "nprogress"

npm i nprogress
/* css */ 
/* 第三方进度条组件 nProgress必须样式 */
/* Make clicks pass-through */
#nprogress {
  pointer-events: none;
}

#nprogress .bar {
  background: #fb0;

  position: fixed;
  z-index: 1031;
  top: 0;
  left: 0;

  width: 100%;
  /* height: 2px; */
  height: 4px;
}

/* Fancy blur effect */
#nprogress .peg {
  display: block;
  position: absolute;
  right: 0px;
  width: 100px;
  height: 100%;
  box-shadow: 0 0 10px #fb0, 0 0 5px #fb0;
  opacity: 1.0;

  -webkit-transform: rotate(3deg) translate(0px, -4px);
  -ms-transform: rotate(3deg) translate(0px, -4px);
  transform: rotate(3deg) translate(0px, -4px);
}

/* Remove these to get rid of the spinner */
#nprogress .spinner {
  display: block;
  position: fixed;
  z-index: 1031;
  top: 15px;
  right: 15px;
}

#nprogress .spinner-icon {
  width: 18px;
  height: 18px;
  box-sizing: border-box;

  border: solid 2px transparent;
  border-top-color: #fb0;
  border-left-color: #fb0;
  border-radius: 50%;

  -webkit-animation: nprogress-spinner 400ms linear infinite;
  animation: nprogress-spinner 400ms linear infinite;
}

.nprogress-custom-parent {
  overflow: hidden;
  position: relative;
}

.nprogress-custom-parent #nprogress .spinner,
.nprogress-custom-parent #nprogress .bar {
  position: absolute;
}

@-webkit-keyframes nprogress-spinner {
  0% {
    -webkit-transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(360deg);
  }
}

@keyframes nprogress-spinner {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
fetch是一种用于发送网络请求的API,可以通过fetch发送POST请求POST请求是一种向服务器提交数据的HTTP请求方法。在fetch发送POST请求,可以使用第二个参数来配置请求的方法、头部信息和请求体。 首先,我们需要创建一个包含请求信息的对象。例如,我们可以创建一个对象包含URL、请求头、请求方法和请求体等。然后,将这个对象作为参数传递给fetch函数。 ```javascript const url = 'https://api.example.com/post'; const data = { username: 'example', password: 'password' }; const options = { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }; fetch(url, options) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.log(error)); ``` 在上面的示例中,我们定义了一个URL,并且创建了一个options对象。这个对象中,我们将请求方法设为POST,设置了请求头的Content-Type为application/json,并通过JSON.stringify将data对象转换为JSON字符串后,作为请求发送给服务器。 然后,我们使用fetch函数发送POST请求,并且通过.then方法处理响应数据。在这个例子中,我们将响应数据解析为JSON格式,并将其输出到控制台。如果请求失败,我们通过.catch方法捕获错误并输出到控制台。 这就是使用fetch发送POST请求的基本过程。通过这种方式,我们可以向服务器发送带有请求体的POST请求,并且可以通过.then方法处理响应数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值