bailicangdu / vue2-elm

Large single page application with 45 pages built on vue2 + vuex. 基于 vue2 + vuex 构建一个具有 45 个页面的大型单页面应用
https://cangdu.org/elm/
GNU General Public License v2.0
40.93k stars 12.45k forks source link

访问接口404 #644

Open keluyao123 opened 2 years ago

keluyao123 commented 2 years ago

fetch.js?7dfd:5 GET http://localhost:8081/v1/cities?type=guess 404 (Not Found)

yjjyzzz commented 2 years ago

同问

NieShiyi commented 3 months ago

可能是proxy的规则,试着把他的规则匹配改一下。他现在解析的时候会把规则拿出来匹配,然后匹配到该规则字符串,就会默认去掉这个字符串。 修改的方式很多,比如

  1. 添加pathRewrite var options = { target: proxypath, changeOrigin: true, pathRewrite: function (path, req) { console.log("${req.baseUrl}${path}", ${req.baseUrl}${path}); return ${req.baseUrl}${path}; }, };
  2. 在config中的context,把这些代理路径前面都加上/api(项目中没有用到的字符串都可以),然后在代理路径proxypath后面也加一个/api context: [ //代理路径 '/shopping', '/ugc', '/v1', '/v2', '/v3', '/v4', '/bos', '/member', '/promotion', '/eus', '/payapi', '/img', ] 当然还有其他方法,只要把他前面默认匹配到的字符串加回来就可以,比如匹配到了以/v1开始的接口,那么他会默认把/v1删除掉。不管用什么方式,你把这个/v1加回来就可以了。