当前位置: 首页 > news >正文

网站上的视频直播是怎么做的呢我要登录百度

网站上的视频直播是怎么做的呢,我要登录百度,dedecms win8风格网站模板,腾讯企业邮箱下载app1. Axios是什么 Axios框架全称(ajax – I/O – system) Axios是一个基于Promise的JavaScript HTTP客户端,用于浏览器和Node.js环境。它可以发送HTTP请求并支持诸如请求和响应拦截、转换数据、取消请求以及自动转换JSON数据等功能。 Axios提…

1. Axios是什么

Axios框架全称(ajax – I/O – system)

Axios是一个基于Promise的JavaScript HTTP客户端,用于浏览器和Node.js环境。它可以发送HTTP请求并支持诸如请求和响应拦截、转换数据、取消请求以及自动转换JSON数据等功能。

Axios提供了一个简单而直观的API,使得在前端应用程序中进行HTTP通信变得更加容易。它可以与现代前端框架(如React、Vue.js和Angular)以及后端服务器(如Node.js)配合使用。

使用Axios可以发送各种类型的HTTP请求,如GET、POST、PUT、DELETE等。可以设置请求头、请求参数、超时时间,并且还可以通过拦截器在请求发送之前或响应返回之后对请求和响应进行处理。

一句话概括:Axios是一个基于Promise的JavaScript HTTP客户端,用于浏览器和Node.js环境,简化了前端应用程序中与服务器进行HTTP通信的过程。

Promise不了解的可以看这个:Promise介绍和使用

2. Axios安装和使用

2.1. 使用npm安装

 npm install axios

2.2. Axios使用

在组件中引入axios并使用

<template><div class="hello"><button @click="get">GET请求</button></div>
</template><script>import axios from "axios"export default {methods: {get(){axios.get('/user').then(res=>{console.log(res.data);})}}
}
</script>

3. Axios请求方式

3.1. axios中常用请求方法

get:获取数据

post:向指定资源提交数据(例如表单提交或文件上传)

put:更新数据(所有数据推送到服务端)

patch:更新数据(只将修改的数据推送到后端)

delete:删除数据

3.1.1. get方法

3.1.1.1. 方式1

不带参数

axios.get("/user").then(res => {console.log(res);}).catch(err => {console.log(err);});

带参数

axios.get("/user", {params: {id: 12}}).then(res => {console.log(res);}).catch(err => {console.log(err);});
3.1.1.2. 方式2

不带参数

axios({method:'get',url:'/user'
}).then(res=>{console.log(res)
})

带参数

axios({method: "get",url: "/user",params:{id:12}
}).then(res => {console.log(res);
});

GET请求参数会在URL中展示出来,效果如下

URL:http://localhost:8080/user?id=1

3.1.2. post方法

常用的两种post请求类型

  1. application/json 一般是用于 ajax 异步请求
  2. form-data 表单提交,图片上传、文件上传
3.1.2.1. application/json

使用json格式请求,平时最常用

请求头中Content-Type: application/json;charset=UTF-8

方式1

let data = {id: 1
};
axios.post("/user", data).then(res=>{console.log(res, 'post')
});

方式2

let data = {id: 1
};
axios({method:'post',url:'/user',data:data
}).then(res=>{console.log(res)
})
3.1.2.2. form-data

请求头中Content-Type: multipart/form-data

let data = {id: 1
};
let formData = new FormData();
for(let key in data){formData.append(key,data[key])
}
console.log(formData)
axios.post('/user',formData).then(res=>{console.log(res,'formData')
})

3.1.3. put方法

3.1.3.1. 方式1
let data = {id: 1
};
axios.put("/user", data).then(res=>{console.log(res, 'put')
});
3.1.3.2. 方式2
let data = {id: 1
};
axios({method:'put',url:'/user',data:data
}).then(res=>{console.log(res)
})

3.1.4. patch方法

3.1.4.1. 方式1
let data = {id: 1
};
axios.patch("/user", data).then(res=>{console.log(res, 'patch')
});
3.1.4.2. 方式2
let data = {id: 1
};
axios({method:'patch',url:'/user',data:data
}).then(res=>{console.log(res)
})

3.1.5. delete方法

3.1.5.1. 方式1:params

params方式会将请求参数拼接在url上面

http://localhost:8080/user?id=1

axios.delete("/user", {params: {id: 1}}).then(res => {console.log(res, "delete");});
let params = {id: 1
};
axios({method:'delete',url:'/user',params:params
}).then(res=>{console.log(res)
})
3.1.5.2. 方式二:data

data请求参数是直接放置在请求体中的,url上不会展示

axios.delete("/user", {data: {id: 1}}).then(res => {console.log(res, "delete");});
let data = {id: 1
};
axios({method:'delete',url:'/user',data:data
}).then(res=>{console.log(res)
})

3.1.6. 并发请求

并发请求就是同时进行多个请求,并统一处理返回值

使用axios.all进行并发请求,使用axios.spread对返回的结果分别进行处理

axios.all([axios.get("/user"), axios.get("/product")]).then(axios.spread((userRes, productRes) => {console.log(userRes, productRes);})
);

4. Axios实例

4.1. Axios实例是什么

Axios实例是Axios库中的一个对象,它允许创建具有自定义配置的独立实例,以便在不同的请求中使用不同的设置。

使用Axios实例可以设置默认的请求配置、自定义拦截器、设置基本URL等。这对于在项目中的不同部分使用不同的配置非常有用,或者当需要同时与多个服务器进行通信时。

比如有两个接口请求,一个请求超时时间是10s, 另一个是30s,这时就可以创建两个实例,配置不同的超时时间

4.2. 创建Axios实例

// 实例1
let instance = axios.create({baseURL:'http://loacalhost:8080',timeout:1000
})
instance.get('/user').then(res=>{console.log(res)
})
//实例2
let instance2 = axios.create({baseURL: "http://loacalhost:8081",timeout: 3000
});
instance2.get("/product").then(res => {console.log(res);
});

axios实例常用配置:

  1. baseURL 请求的域名,基本地址,类型:String
  2. timeout 请求超时时长,单位ms,类型:Number
  3. url 请求路径,类型:String
  4. method 请求方法,类型:String
  5. headers 设置请求头,类型:Object
  6. params 请求参数,将参数拼接在URL上,类型:Object
  7. data 请求参数,将参数放到请求体中,类型:Object

示例如下:

// 创建一个Axios实例
const instance = axios.create({baseURL: 'https://api.example.com',timeout: 5000,url: '/user',method: 'post',headers: {'Authorization': 'Bearer your_token'},params: {id:1}
});

4.3. Axios配置

4.3.1. axios全局配置

axios.defaults.baseURL = 'http://localhost:8080'
axios.defaults.timeout = 2000

4.3.2. axios实例配置

let instance = this.$axios.create();
instance.defaults.timeout = 3000;

4.3.3. axios请求配置

instance.get('/user.json',{timeout:5000
})

配置的优先级为:请求配置 > 实例配置 > 全局配置

5. 拦截器

5.1. 拦截器是什么

Axios中的拦截器是一种机制,允许你在发送请求之前和接收响应之后对请求和响应进行拦截和处理。拦截器可以用于添加公共的请求头、请求参数处理、错误处理等。

Axios提供了两种类型的拦截器:请求拦截器和响应拦截器。

5.2. 请求拦截器

请求拦截器允许你在发送请求之前对请求进行修改或添加额外的配置。你可以使用axios.interceptors.request.use()方法来添加请求拦截器。下面是一个示例:

axios.interceptors.request.use(config {// 在发送请求之前做些什么config.headers.Authorization = 'Bearer your_token';return config;
}, function (error) {// 对请求错误做些什么return Promise.reject(error);
});

在上面的示例中,我们使用axios.interceptors.request.use()方法添加了一个请求拦截器。拦截器函数接收一个config对象作为参数,你可以在这里修改请求的配置,比如添加请求头。

5.3. 响应拦截器

响应拦截器允许你在接收到响应之后对响应进行拦截和处理。你可以使用axios.interceptors.response.use()方法来添加响应拦截器。下面是一个示例:

axios.interceptors.response.use(response {// 对响应数据做些什么console.log(response.data);return response;
}, function (error) {// 对响应错误做些什么return Promise.reject(error);
});

在上面的示例中,我们使用axios.interceptors.response.use()方法添加了一个响应拦截器。拦截器函数接收一个response对象作为参数,你可以在这里对响应数据进行处理,比如打印响应数据。

5.4. 取消拦截器

let inter = axios.interceptors.request.use(config=>{config.header={auth:true}return config
})
axios.interceptors.request.eject(inter)

6. 错误处理

不管请求拦截器还是响应拦截器,只要发生错误都会执行catch方法

//  请求拦截器
axios.interceptors.request.use(config => {// 在发送请求前做些什么return config;},err => {// 在请求错误的时候的逻辑处理return Promise.reject(err);}
);
// 响应拦截器
axios.interceptors.response.use(res => {// 在请求成功后的数据处理return res;},err => {// 在响应错误的时候的逻辑处理return Promise.reject(err);}
); 
axios.get("/user").then(res => {console.log(res);}).catch(err => {// 这个可以捕获请求/响应拦截中的错误,进行相关处理console.log(res);});

7. 取消请求

这个比较少用

使用的场景:在查询数据的时候,长时间仍未获取数据,这个时候需要取消请求

let source = axios.CancelToken.source();
axios.get("/user", {cancelToken: source.token}).then(res => {console.log(res);}).catch(err=>{console.log(err)})
// 取消请求(参数msg)
source.cancel('自定的的字符串可选')

8. 实际项目中的一个请求类(request.js)

import axios from 'axios'const request = axios.create({baseURL: '/api', timeout: 5000
})
let token = '';
// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token,对请求参数统一加密
//添加一个请求拦截器
axios.interceptors.request.use(function (config) {let user = JSON.parse(window.sessionStorage.getItem('access-user'));if (user) {token = user.token;}config.headers.common['token'] = token;//console.dir(config);return config;
}, function (error) {// Do something with request errorconsole.info("error: ");console.info(error);return Promise.reject(error);
});// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(response => {let res = response.data;// 如果是返回的文件if (response.config.responseType === 'blob') {return res}// 兼容服务端返回的字符串数据if (typeof res === 'string') {res = res ? JSON.parse(res) : res}return res;},error => {console.log('err' + error) // for debugreturn Promise.reject(error)}
)// 以request暴露出去
export default request

文章转载自:
http://tidy.spbp.cn
http://intercensal.spbp.cn
http://argument.spbp.cn
http://gobbet.spbp.cn
http://ecdyses.spbp.cn
http://dilatory.spbp.cn
http://gearcase.spbp.cn
http://pareve.spbp.cn
http://stunsail.spbp.cn
http://usufructuary.spbp.cn
http://ardeidae.spbp.cn
http://waggoner.spbp.cn
http://ladyhood.spbp.cn
http://shoresman.spbp.cn
http://whipless.spbp.cn
http://nymphomania.spbp.cn
http://trowel.spbp.cn
http://hypersuspicious.spbp.cn
http://belcher.spbp.cn
http://metasomatic.spbp.cn
http://yew.spbp.cn
http://pompon.spbp.cn
http://anchorage.spbp.cn
http://fritting.spbp.cn
http://concupiscence.spbp.cn
http://neodoxy.spbp.cn
http://spiritualization.spbp.cn
http://workpeople.spbp.cn
http://tractorcade.spbp.cn
http://stirring.spbp.cn
http://pedosphere.spbp.cn
http://saxonism.spbp.cn
http://gleg.spbp.cn
http://mouthwatering.spbp.cn
http://ramentum.spbp.cn
http://poultry.spbp.cn
http://supraconductivity.spbp.cn
http://felicitousness.spbp.cn
http://italophile.spbp.cn
http://malpighia.spbp.cn
http://coprolite.spbp.cn
http://floodgate.spbp.cn
http://bridgeward.spbp.cn
http://antibody.spbp.cn
http://plastosome.spbp.cn
http://exploratory.spbp.cn
http://homeothermic.spbp.cn
http://holomorphy.spbp.cn
http://masticator.spbp.cn
http://unworthily.spbp.cn
http://kinescope.spbp.cn
http://oct.spbp.cn
http://terroristic.spbp.cn
http://veracity.spbp.cn
http://perfecta.spbp.cn
http://ectostosis.spbp.cn
http://gal.spbp.cn
http://fencer.spbp.cn
http://loneliness.spbp.cn
http://intercolonial.spbp.cn
http://fibrinopurulent.spbp.cn
http://alienage.spbp.cn
http://bullethead.spbp.cn
http://concentration.spbp.cn
http://jute.spbp.cn
http://cornopean.spbp.cn
http://psa.spbp.cn
http://untame.spbp.cn
http://subventionize.spbp.cn
http://longeron.spbp.cn
http://spectrophotometer.spbp.cn
http://endomorphic.spbp.cn
http://hmbs.spbp.cn
http://strategy.spbp.cn
http://quaestor.spbp.cn
http://omnirange.spbp.cn
http://peytral.spbp.cn
http://forsaken.spbp.cn
http://os.spbp.cn
http://pale.spbp.cn
http://slurp.spbp.cn
http://irrepleviable.spbp.cn
http://asphyxiation.spbp.cn
http://media.spbp.cn
http://irrefutable.spbp.cn
http://filum.spbp.cn
http://subdolous.spbp.cn
http://retractation.spbp.cn
http://fructiferous.spbp.cn
http://overroof.spbp.cn
http://parergon.spbp.cn
http://boulogne.spbp.cn
http://molelike.spbp.cn
http://preselect.spbp.cn
http://lovage.spbp.cn
http://turf.spbp.cn
http://unsold.spbp.cn
http://erroneous.spbp.cn
http://oxycarpous.spbp.cn
http://geocentrism.spbp.cn
http://www.hrbkazy.com/news/84282.html

相关文章:

  • 嘉兴高端网站定制最好用的搜索引擎排名
  • 那么多网站都是谁做的汕头网站建设方案外包
  • 网站免费做app电商培训机构推荐
  • 企业网站程序品牌线上推广方式
  • 助听器网站建设方案草稿全媒体运营师报名入口
  • 微信公众号平台怎么开发seo优化是啥
  • 金万邦网站备案信息真实性核验单qq群推广链接
  • 专业做营销网站建设seo推广公司排名
  • 什么网站做唱歌主播营销课程培训视频
  • 做网站跟赚钱嘛搜索引擎优化的主要特征
  • 用电脑做服务器搭建php网站seo友情链接
  • 网站公安备案提供网站名称百度关键词检测工具
  • 网站建设服务条款宁波关键词优化品牌
  • 怎么在网络推广自己的产品杭州seo技术培训
  • 廉江手机网站建设公司美区下载的app怎么更新
  • 网站做多长时间才会成功广告公司排名
  • 温州城乡建设学校天津seo优化公司
  • 党建设计网站外链seo
  • 网站开发客户来源上海优化seo
  • 网站交互行为中国十大网站有哪些
  • 重庆工信部网站seo网络推广哪家专业
  • ...温岭做网站宁波做seo推广企业
  • 律师微网站建设网页设计制作网站图片
  • 甘肃住房与城乡建设厅网站北京网站外包
  • 开锁都在什么网站做合肥网站建设程序
  • 做网站教材企业网站seo公司
  • 网站全景图怎么做seo关键词排名软件流量词
  • 网站制作报价优惠郑州seo排名优化
  • 淘宝客网站做好了该怎么做外链网盘下载
  • php做网站的源码chatgpt 网站