vue-cli3 axios跨域 对django服务器还是以本地地址发送请求 但是可以对百度可以正常发送请求

发布于 2022-09-12 02:45:43 字数 1841 浏览 37 评论 0

问题描述

我用 vue 和 django 搭建了前后台,进行跨域, 前端服务是 http://127.0.0.1:8080/,后端是http://127.0.0.1:8000/list/goods,端口号不一样,我前端设置axios跨域以后,发送请求还是以本地地址发送,但是我的目标地址设置成百度就可以正常收到请求。

module.exports = {
    devServer: {
        host:'127.0.0.1',
        port: 8080,
        proxy: {
            '/api': {
                // target: 'https://www.baidu.com/',
                target: 'http://127.0.0.1:8000/',// 你要请求的后端接口ip+port
                changeOrigin: true,// 
                ws: true,
                pathRewrite: {
                    '^/api': ''
                }
            }
        }
    }
}

请求部分的代码如下:

this.$axios.get('/list/order').then(response => {
                    if (response.data) {
                        console.log(response.data)
                    }
                }).catch(() => {
                    alert('请求失败')
                })

报错如下:

image.png

后来甚至变成这样,直接找不到api
image.png
最奇怪的是当把上面的地址变成百度是可以收到请求的。
image.png
后台是长这样的:
image.png

在给前端请求加了api之后的vue运行界面变成了:
image.png
此时请求如下:

        mounted(){
            this.$axios.get("/api/goods/ListItem")
                .then(response => {
                    if (response.data) {
                        console.log(response.data)
                    }
            })
        },

我仔细观察了一下后端的请求,11:50分是一打开页面的,12:00是刷新之后才会显示上图的截图。
image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦里泪两行 2022-09-19 02:45:43

你用 axios 发请求的地址没有带上 /api,所以压根没有命中你配置好的代理的逻辑。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文