网页可以正常打开的,就是无法获取接口的数据,接口返回404,已排除跨域问题,后端接口是放开了所有ip都可以访问得到数据的
这个是我请求的地址
这个是我这边的报错
这个是vue.config配置
网页可以正常打开的,就是无法获取接口的数据,接口返回404,已排除跨域问题,后端接口是放开了所有ip都可以访问得到数据的
这个是我请求的地址
这个是我这边的报错
这个是vue.config配置
看你proxy代理的时候有重写将'/api'写成'',还有请求端端口为8080,看配置后端端口应该是3000。打包后devServe里的配置是不会生效的,那么你要检测路径和端口是否正确,所以要区分打包前后的路径和请求端口是否一致。
原因上面已经说得很清楚了,我说一下如何解决吧,http-server 是支持开启代理的,将本地所有请求转发到指定的服务
http-server --proxy https://custom-host
27 回答13k 阅读
6 回答2.3k 阅读✓ 已解决
8 回答3.5k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
5 回答5.3k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
6 回答1.1k 阅读
首先你得了解
devServer
配置的是什么。我们使用
npm run dev
进入调试模式的时候, 我们本地将会启动一个http
服务,这个服务是用node.js
启动的,因此我们可以在本地访问我们写的web
页面。当
web
页面中的ajax
访问某一个接口的时候,如果不写类似http://xxx/
开头的话,就意味着访问本地服务,也就是node.js
开启的服务,但是我们的真实服务并不是node.js
,而是后端开启的另外的服务,因此我们需要配置node.js
服务将这些请求代理转发给后端真实接口。所以我们在
vue.config.js
中配置的devServer
就是为了配置node.js
服务的,告诉他遇到api
开头的请求转发到http://xxx
。那么最后就是打包之后了,当项目打包之后,你会发现项目变成静态页面了,我们会把页面打包部署到类似
nginx
上,也就是没有node.js
作为页面的呈现服务了,那么配置的devServer
当然也没法有效了,但原理还是一致的,最后只需在nginx
上配置转发即可。