社区
JavaScript
帖子详情
vue引入axios时main.js中的Vue.prototype.xxx= axios 报错
fuze990130
2020-09-08 08:35:36
为什么不能使用Vue.xxx呢,一直Vue is not defined
...全文
4367
11
打赏
收藏
vue引入axios时main.js中的Vue.prototype.xxx= axios 报错
为什么不能使用Vue.xxx呢,一直Vue is not defined
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq_29845445
2022-05-17
打赏
举报
回复
1
少打游戏多读书
fuze990130
2022-05-17
举报
回复
@qq_29845445
超级大坏人
2021-05-04
打赏
举报
回复
哈哈哈,一年过去了你解决了吗
fuze990130
2022-05-17
举报
回复
@超级大坏人
哈哈 当时才大三小白 现在肯定知道了呀
sousa_
2023-03-14
举报
回复
@fuze990130
所以博主该怎么写
kerwin_1727
2021-04-21
打赏
举报
回复
麻烦看下文档
想成为大神的小子
2021-04-19
打赏
举报
回复
所以正确的应该怎么写
泡泡鱼_
2020-12-13
打赏
举报
回复
晕,9月的贴子现在又顶起来了……牛
泡泡鱼_
2020-12-13
打赏
举报
回复
5
Vue3.0中已经没有Vue.prototype了。现在使用app.config.globalProperties.$axios=xxx; 这里面的app是: const app =createApp(App);
保龄球77
2021-12-15
举报
回复
@泡泡鱼_
没有createApp这个方法呀
jio可
2020-09-09
打赏
举报
回复
Vue没有声明, 你只是使用了vue里面的createApp. import Vue from 'vue'
Vue
+Typescript
中
在
Vue
上挂载
axios
使用
时
报错
问题
在
vue
项目开发过程
中
,为了方便在各个组件
中
调用
axios
,我们通常会在入口文件将
axios
挂载到
vue
原型身上,如下:
main
.ts import
Vue
from '
vue
' import
axios
from './utils/http'
Vue
.
prototype
.$
axios
=
axios
; 这样的话,我们在各个组件
中
进行请求
时
,就可以直接使用this.$
axios
,但是在ts
中
使用this.$
axios
进行请求
时
,会进行
报错
,如下所示: 从图
中
我们可以看出ts在
Vue
身上检测不到$
axios
。通过 在网上查阅发现:在ts
中
,不识别
vue
下面挂$
axios
,不可以挂在原型链上
Vue
axios
设置访问基础路径方法
看过
axios
的官方文档后配置变得简单: 在
main
.
js
做如下配置: import
axios
from '
axios
'
axios
.defaults.baseURL = 'http://10.202.42.24:8080/sf-cloud-web'
Vue
.
prototype
.
axios
=
axios
最后一行是将
axios
配置到
Vue
原型
中
,使用方法为: this.
axios
.get('/test/1').then(function (response) {}) 可能会遇到下面的
报错
: isURLSameOrigin.
js
?cf95:57 Uncaught (in promis
Vue
项目实战:接口错误拦截与环境设置
接口错误拦截 场景: 统一
报错
未登录拦截 请求值、返回值统一处理 使用
axios
插件进行拦截: 安装
axios
npm i
axios
--save-dev 在
main
.
js
文件
中
加入: import
axios
from '
axios
' import
Vue
Axios
from '
vue
-
axios
'
axios
.defaults.baseURL = '/api';
axios
.defaults.timeout = 8000; //接口错误拦截
axios
.interceptors.response.use(function(response) { let res = response
在
main
.
js
中
引入
axios
在
main
.
js
中
引入
axios
import
Vue
from "
vue
"; import App from "./App.
vue
"; import router from "./router"; import
axios
from "
axios
"; // 挂载后台数据
Vue
.
prototype
.$http =
axios
;
axios
.defaults.baseURL = "http://127.0.0.1:8888/api/private/v1/"; // 请求拦截
axios
.intercept
Vue
Typescript 原型
prototype
this
axios
报错
解决方法
ts与
js
的语法不一样,但是
js
有的ts也必须有。
js
的
axios
一般赋值给
Vue
.
prototype
.
axios
,ts也是可以的,但访问不要使用this而是使用
Vue
.protortype。具体如下 //
main
.ts
Vue
.
prototype
.
axios
=
axios
; //其他
vue
组件
中
,有两种引用方法 @Component export default class Demo extends
Vue
{
axios
=
Vue
.
prototype
.
axios
;
JavaScript
87,907
社区成员
224,614
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章