【Vue】Vue初学,axios请求带上了localhost:8080?

18:35更新:

现在的问题如图所示,为什么在我的请求地址前面会有localhost呢?

再次编辑
在main.js里面写的是:

import axios from 'axios'

Vue.prototype.$axios=axios;

1.目前在跟着B站的一个视频做一个电影网站的项目,遇到的问题是通过api获取城市资料的时候获取不到,chrome报错显示404。

【Vue】Vue初学,axios请求带上了localhost:8080?

具体代码如下。
在根目录里vue.config.js里面是这么写的。

 module.export={

devServer:{

proxy:{

'/api':{

target:'http://39.97.33.178',

changeOrigin:true,

pathRewrite : {

'^/api':''

}

}

}

}

}`

components文件夹下面的city.vue里面获取api的数据是这么写的。

<script>

export default {

name:'City',

mounted () {

this.$axios.get('/api/cityList').then(res => {

console.log(res);

})

}

}

</script>

视频里面经过这么一顿操作就出来了,为什么我的就出不来呢?因为周围没有做前端的,所以我也不知道问谁,只能在这求助一下大家,谢谢。
教学视频地址如下
https://www.bilibili.com/vide...
p9 可以从第四分钟开始看。

回答

module.export={

devServer:{

proxy:{

'/api':{

target:'http://39.97.33.178',

changeOrigin:true,

pathRewrite : {

'^/api':''

}

}

}

}

}

上面代码中export应该为exports.
解决了。
想不到犯了这么个错误。
再次谢谢大家。

估计是你看视频没仔细看,在视频某个地方会写

import axios from 'axios'

...

Vue.prototype.$axios = axios

类似的语句,加上就好了

你前面设置了Vue.prototype.$axios = axios,你把this.axios改成this.$axios试试

404是找不到资源。也就是不存在这个页面地址,和跨域没有任何关系。这里要排查哪里写错了。

对于前端跨域主要由JSONP,服务端代理,还有就是服务端设置允许跨域。

  1. JSONP利用script标签可以跨域的特性进行跨域请求,但是只能GET
  2. 服务端代理,跨域是浏览器的限制,不在浏览器里允许则不存在跨域。比如我在A域名下,我可以访问A下所有资源。那么A服务器端将B域名下资源转发,那么我就可以通过A访问B了,这样也就不存在跨域了。
  3. 服务端如果在header表明允许跨域,那么也就不存在跨域了。设置主要在header

Access-Control-Allow-Origin:*

// 响应类型

Access-Control-Allow-Methods:POST

你能贴一下后台接口的完整地址吗,这个报错是接口地址不存在,需要看下完整地址才能知道你配置的是否有误,初步估计是配置的 pathRewrite 导致的,需要看先接口的完整地址才知道是不是配置有错

访问的localhost,哪来的跨域,要不地址写错了,要不没给api拼上域名

你上面贴的代码里的 changeOrigin 好像拼错了?

你好,我也遇到同样的问题,你的解决了吗

以上是 【Vue】Vue初学,axios请求带上了localhost:8080? 的全部内容, 来源链接: utcz.com/a/75187.html

回到顶部