本篇文章给大家谈谈axios进阶实践之利用最优雅的方式写ajax请求,以及ajax如何写的知识点,同时本文还将给你拓展24_ajax请求_使用axios、ajax第十三节 AJAX-Axios(通用方
本篇文章给大家谈谈axios进阶实践之利用最优雅的方式写ajax请求,以及ajax如何写的知识点,同时本文还将给你拓展24_ajax请求_使用axios、ajax 第十三节 AJAX-Axios (通用方法) 函数发送AJAX请求 04:36、ajax 第十二节 AJAX-Axios发送AJAXget,post请求、AJAX---Axios发送AJAX请求等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- axios进阶实践之利用最优雅的方式写ajax请求(ajax如何写)
- 24_ajax请求_使用axios
- ajax 第十三节 AJAX-Axios (通用方法) 函数发送AJAX请求 04:36
- ajax 第十二节 AJAX-Axios发送AJAXget,post请求
- AJAX---Axios发送AJAX请求
axios进阶实践之利用最优雅的方式写ajax请求(ajax如何写)
前言
ajax相信不用过多介绍了,作者坚信可以用配置解决的问题,请勿硬编码,下面话不多说了,来一看看详细的介绍吧。
axios是Vue官方推荐的ajax库,用来取代vue-resource。更多详细的基础知识可以参考这篇文章:
优点:
1. content-type配置
2. api 配置
3. request.js 方法
4. 在组件中使用
浏览器结果:
5. 更多
有个地方我不是很明白,希望懂的人可以给我解答一下
如果某个组件中只需要login方法,但是我这样写会报错。
这样写的前提是要在request.js最后写上
但是这是我不想要的,因为每次增加一个接口,这里都要export一次, 这不符合开放闭合原则,请问有什么更好的方法吗?
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对小编的支持。
24_ajax请求_使用axios
前置说明:
1.React本身只关注页面,并不包含发送ajax请求的代码
2.前端应用需要通过ajax请求与后台进行交互(json数据)
3.React应用中需要集成第三方ajax库(或自己进行封装)
常用的ajax库:
1.jQuery:比较重,为了发送ajax请求而引用整个文件(不建议使用)
2.axios:轻量级,建议使用!
a.封装了XmlHttPRequest对象的ajax
b.promise风格
c.可以用在浏览器端和node服务器端
3.fetch:原生函数,但老版本浏览器不支持
a.不再使用XmlHttPRequest对象提交ajax请求
b.为了兼容低版本的浏览器,可以引入兼容库fetch.js
代码:
//其中的地址貌似访问不到了
<!DOCTYPE html> <html lang="en"> <head> <Meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="example"></div> <script type="text/javascript" src="../js/react.development.js"></script> <script type="text/javascript" src="../js/react-dom.development.js"></script> <script type="text/javascript" src="../js/babel.min.js"></script> <script type="text/javascript" src="https://cdn.bootcss.com/axios/0.19.0-beta.1/axios.js"></script> <script type="text/babel"> /* * 需求: * 1.界面效果如下 * 2.根据指定的关键字在github上搜索匹配的最受关注的库 * 3.显示库名,点击链接查看库 * 4.测试接口:https://api.github.com/search/repositories?q=r&sort=stars */ class MostStarRepo extends React.Component { state = { repoName: ‘‘,repoUrl: ‘‘ } //在这里发送异步ajax请求 componentDidMount() { //使用axios发送 const url = `https://api.github.com/search/repositories?q=r&sort=stars`; //因为是promise风格的,所以后面可以使用.then() axios.get(url).then(response => { //数据就在reponse里面 const result = response.data //使用解构得到想要的数据 const {name,html_url} = result.items[0]; //更新状态 this.setState({repoName: name,repoUrl: html_url}) }) } render() { const {repoName,repoUrl} = this.state if (!repoName) { return <h2>LOADING......</h2> } else { return <h2>Most star repo is <a href={repoUrl}>{repoName}</a></h2> } } } ReactDOM.render(<MostStarRepo/>,document.getElementById(‘example‘)); </script> </body> </html>
ajax 第十三节 AJAX-Axios (通用方法) 函数发送AJAX请求 04:36
<!DOCTYPE html> <html lang="en">
<head> <Meta charset="UTF-8"> <Meta http-equiv="X-UA-Compatible" content="IE=edge"> <Meta name="viewport" content="width=device-width, initial-scale=1.0">
<script crossorigin="anonymous" src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.1/axios.js"></script> <title>Document</title> </head>
<body> <button>GET</button> <button>POST</button> <button>AJAX</button> </body> <script> const btns = document.querySelectorAll(''button''); //设置baseURL axios.defaults.baseURL = ''http://127.0.0.1:8000'' btns[0].onclick = function () { //get请求 axios.get(''/axios-server'', { //usr 参数 params: { id: 100, vip: 7 }, //请求头信息 headers: { name: ''DX3'', age: 20 } }).then(response => { console.log(response); }) }
btns[1].onclick = function () { //post请求,第一个参数是url,第二个参数是请求体,第三个参数是其它 axios.post(''/axios-server'', { username: ''admin'', pwssword: ''admin'' }, { //usr 参数 params: { id: 100, vip: 7 }, //请求头信息 headers: { height: ''DX3'', weight: 20 } }) }
btns[2].onclick = function () { axios({ method: ''post'', url: ''/axios-server'', params: { vip: 10, level: 30 }, headers: { a: 10, b: 20 }, data: { username: ''admin'', password: ''admin'' } }).then(response => { console.log(response); //响应状态码 console.log(response.status); //响应状态字符串 console.log(response.status.Text); //响应头信息 console.log(response.headers); //响应体 console.log(response.data); }) }
</script>
</html> ===========server.js=========== //引用 express const { request, response, json } = require(''express''); const express = require(''express'');
//创建应用对象 const app = express();
//创建路由规则, // request 是对请求报文的封装 // response 是对响应报文的封装 //app.all 可以接收任意类型的请求头
app.all(''/axios-server'', (request, response) => { //设置响应头,设置充许跨域 response.setHeader(''Access-Control-Allow-Origin'', ''*''); response.setHeader(''Access-Control-Allow-Headers'', ''*''); const data = { name: ''xiaoming'', age: ''18'' }; //setTimeout(() => { response.send(JSON.stringify(data)); //}, 3000);
})
// 监听端口启动服务 app.listen(8000, () => { console.log(''服务已经启动,8000端口监听中.......''); })
ajax 第十二节 AJAX-Axios发送AJAXget,post请求
1、axios 发送 ajax get 请求 (第一个参数 usr,第二个其它)
<!DOCTYPE html> <html lang="en">
<head> <Meta charset="UTF-8"> <Meta http-equiv="X-UA-Compatible" content="IE=edge"> <Meta name="viewport" content="width=device-width, initial-scale=1.0">
<script crossorigin="anonymous" src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.1/axios.js"></script> <title>Document</title> </head>
<body> <button>GET</button> <button>POST</button> <button>AJAX</button> </body> <script> const btns = document.querySelectorAll(''button''); //设置baseURL axios.defaults.baseURL = ''http://127.0.0.1:8000'' btns[0].onclick = function () { //get请求 axios.get(''/axios-server'', { //usr 参数 params: { id: 100, vip: 7 }, //请求头信息 headers: { name: ''DX3'', age: 20 } }).then(response => { console.log(response); }) }
btns[1].onclick = function () { //post请求,第一个参数是url,第二个参数是请求体,第三个参数是其它 axios.post(''/axios-server'', { username: ''admin'', pwssword: ''admin'' }, { //usr 参数 params: { id: 100, vip: 7 }, //请求头信息 headers: { height: ''DX3'', weight: 20 } }) } </script>
</html>
2、axios 发送 post 请求 ( 第一个参数(usr),第二个参数(请求体),第三个参数(其它))
=============服务端响应 server.js=============
//引用 express const { request, response, json } = require(''express''); const express = require(''express'');
//创建应用对象 const app = express();
//创建路由规则, // request 是对请求报文的封装 // response 是对响应报文的封装 //app.all 可以接收任意类型的请求头
app.all(''/axios-server'', (request, response) => { //设置响应头,设置充许跨域 response.setHeader(''Access-Control-Allow-Origin'', ''*''); response.setHeader(''Access-Control-Allow-Headers'', ''*''); const data = { name: ''xiaoming'', age: ''18'' }; //setTimeout(() => { response.send(JSON.stringify(data)); //}, 3000);
})
// 监听端口启动服务 app.listen(8000, () => { console.log(''服务已经启动,8000端口监听中.......''); })
AJAX---Axios发送AJAX请求
const btns = document.querySelectorAll(''button''); //配置 baseURL axios.defaults.baseURL = ''http://127.0.0.1:8000''; btns[0].onclick = function () { //GET 请求 axios.get(''/axios-server'', { //url 参数 params: { id: 100, vip: 7 }, //请求头信息 headers: { name: ''atguigu'', age: 20 } }).then(value => { console.log(value); }); } btns[1].onclick = function () { axios.post(''/axios-server'', { username: ''admin'', password: ''admin'' }, { //url params: { id: 200, vip: 9 }, //请求头参数 headers: { height: 180, weight: 180, } }); }
今天关于axios进阶实践之利用最优雅的方式写ajax请求和ajax如何写的讲解已经结束,谢谢您的阅读,如果想了解更多关于24_ajax请求_使用axios、ajax 第十三节 AJAX-Axios (通用方法) 函数发送AJAX请求 04:36、ajax 第十二节 AJAX-Axios发送AJAXget,post请求、AJAX---Axios发送AJAX请求的相关知识,请在本站搜索。
本文标签: