React中使用axios、fetch-jsonp请求数据
程序员文章站
2022-03-16 17:33:22
...
一、使用axios
- 安装axios:
cnpm install axios --save
- 导入axios:
在哪里使用,在哪里导入
import axios from 'axios'
- 请求数据:
(1)请求本地json文件
方式1:
项目目录如下:
Axios.jsx:
import React from 'react'
//引入axios插件
import axios from 'axios'
class Axios extends React.Component {
constructor(props) {
super(props);
this.state = { };
}
//渲染完成的生命周期
componentDidMount(){
//异常处理 抓异常
try{
//react加载本地json文件,需放在public文件里 端口号为http://localhost:3000/ 页面加载出来为首页
axios.get("list.json").then((res)=>{
console.log(res);
});
}
catch(err){
throw err;
}
}
render() {
return (
<div></div>
);
}
}
export default Axios;
注:react加载本地json文件,需放在public文件里
方式2:在mock里挂载
项目目录如下:
mock.jsx:
import Mock from 'mockjs'
//加载本地数据
import listinfo from './list.json'
//使用Mock里的mock方法 拦截ajax请求
Mock.mock("/list","get",{
'result':listinfo
});
export default Mock;
(2)请求远程文件
Axios.jsx:
import React from 'react'
import axios from 'axios'
class Axios extends React.Component {
constructor(props) {
super(props);
this.state = { };
}
componentDidMount(){
let api="http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20";
//里面是用this 注意this的指向
axios.get(api).then((res)=>{
console.log(res);
}).catch(function(res){
console.log(res);
});
}
render() {
return (
<div>请求服务器的数据</div>
);
}
}
export default Axios;
axios 插件用法:https://www.npmjs.com/package/axios
二、使用fetch-jsonp
- 安装fetch-jsonp:
cnpm install fetch-jsonp--save
- 导入fetch-jsonp:
在哪里使用,在哪里导入
import fetchjsonp from 'fetch-jsonp'
- 请求数据:
请求远程文件
例1:以简单的方式获取JSONP
Fetchjsonp .jsx:
import React from 'react'
import fetchjsonp from 'fetch-jsonp'
class Fetchjsonp extends React.Component {
constructor(props) {
super(props);
this.state = { };
}
componentDidMount(){
let api="http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20";
fetchjsonp(api).then((res)=>{
//这里对数据进行操作 默认的
return res.json();
}).then((res)=>{
console.log(res);
}).catch((err)=>{
console.log(err);
});
}
render() {
return (
<div>
</div>
);
}
}
export default Fetchjsonp;
例2:设置JSONP回调参数名称,默认为’回调’
componentDidMount(){
let api="http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20";
fetchjsonp(api,{
jsonpCallback:"custom_callback"
}).then((res)=>{
return res.json();
}).then((res)=>{
console.log(res);
}).catch((err)=>{
console.log(err);
});
}
例3:设置JSONP回调函数名称,默认为带json_前缀的随机数
componentDidMount(){
let api="http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20";
fetchjsonp(api,{
jsonpCallbackFunction:" function_response"
}).then((res)=>{
//这里对数据进行操作 默认的
return res.json();
}).then((res)=>{
console.log(res);
}).catch((err)=>{
console.log(err);
});
}
fetch-jsonp 官网用法:https://www.npmjs.com/package/fetch-jsonp
上一篇: 【嵌入式系统】存储器映射与寄存器映射原理
下一篇: 转载:浏览器加载、解析、渲染的过程
推荐阅读
-
微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
-
详解在Vue中如何使用axios跨域访问数据
-
vue中promise的使用及异步请求数据的方法
-
vue中Axios请求数据教程
-
在react中,使用axios获取后台服务器数据的方法
-
在Vue组件化中利用axios处理ajax请求的使用方法
-
vue使用axios跨域请求数据问题详解
-
使用ajax请求提交数据时,日期类型无法转换为JAVA中的日期类型
-
vue中使用axios发送ajax请求,获取数据
-
vue axios数据请求get、post方法的使用