VUE 配置proxy代理后,前台报错400 bad request

问题描述

使用vue-cli启动前台端口8080,本地eclipse启动后台端口8180,所以需要配置代理。
按照CSDN的教程配置了代理,但是前台浏览器报错
http://localhost:8080/api/springdemo/getUserByGet?userName=111 400 (Bad Request)
,后台收不到消息。

问题出现的环境背景及自己尝试过哪些方法

实际上代理应该是成功的,因为浏览器直接访问http://localhost:8080/api/springdemo/getUserByGet?userName=111
是可以收到返回结果的,但是通过this.$ajax.post(http://localhost:8080/api/springdemo/getUserByGet?userName=111', {})访问就跑不通了。

相关代码

在config/index.js中,引入如下配置。

proxy: {
    '/api': {    
        target: 'http://localhost:8180',  // 接口域名
        changeOrigin: true,  //是否跨域
        pathRewrite: {
            '^/api': ''   // 将前缀 '/api' 转为 '/'
        }
    }
}
看了正常启动的项目,配置了代理应该打启动日志:
[HPM] Proxy created: /apis -> https://apitest.miaomore.com
[HPM] Proxy rewrite rule created: "^/apis" ~> ""

可是我仔细按照教程做的,却没有打这两行代理日志,说明还是配置有问题,请帮我看看吧。

-------------------------------后续补充-------------------------------------------------

发现不是代理未生效,而是前端请求报错403,导致我认为代理不通。
目前只有登录(POST)不能实现代理访问,其他的get请求代理是可以的。请帮忙分析下。

            this.$ajax.post('apis/login', {
                            domainAccount: this.loginForm.domainAccount,
                            password: this.loginForm.password
                        }).then((response) => {...}
阅读 11.7k
3 个回答

这个还是多看看http的基本知识吧

首先百度一下http状态码403是什么错误信息
然后尝试解决

最后推荐一本很好的http书籍
《图解http》
http://www.java1234.com/a/jav...

发现不是代理未生效,而是前端请求报错403,导致我认为代理不通。
目前只有登录(POST)不能实现代理访问,其他的get请求代理是可以的。请帮忙分析下。

            this.$ajax.post('apis/login', {
                            domainAccount: this.loginForm.domainAccount,
                            password: this.loginForm.password
                        }).then((response) => {...}
                        

真正的解决方案,前后台都在本机运行的配置。
https://blog.csdn.net/w770583...

就这俩行分析啥...
你贴这俩行代码写法是没问题的,先搞清楚:

403的错误是什么搞明白?
后台支持的数据格式统一么 例如Content-Type?
后台接口的权限设置有么?
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题