安装 axios
- 命令行运行:
yarn add axios
使用案例
- 准备测试用的后端接口
const express = require('express')
const app = express()
app.use((request,response,next)=>{
console.log('有人请求服务器1了');
console.log('请求来自于',request.get('Host'));
console.log('请求的地址',request.url);
next()
})
app.get('/students',(request,response)=>{
const students = [
{id:'001',name:'tom',age:18},
{id:'002',name:'jerry',age:19},
{id:'003',name:'tony',age:120},
]
response.send(students)
})
app.listen(5000,(err)=>{
if(!err) console.log('服务器1启动成功了,请求学生信息地址为:http://localhost:5000/students');
})
-
在 package.json 中配置代理
该配置意为,将请求转发到 本地的5000
端口,用于跨域,但有一点特别,并不是所有的请求都会被转发到 本地的5000
端口,而是在当前请求的位置找不到资源时,才会进行转发 -
使用 axios
import React, { Component } from 'react'
import axios from 'axios' // 引入
export default class App extends Component {
constructor () {
super()
this.state = {
students: []
}
}
componentDidMount () {
// 发出请求
// 因为 在 3000 端口 找不到 students 接口,因此会被转发到 5000 端口
axios.get('http://localhost:3000/students').then(res=>{
this.setState({
students: res.data
})
})
}
render() {
return (
<ul>
{
this.state.students.map(d => (
<li key={d.id}>name: {d.name}, age: {d.age}</li>
))
}
</ul>
)
}
}
- 页面显示