找到问题:
因为java服务运行在localhost:9001端口,vue运行在localhost:8080端口,不同端口存在跨域问题。所以我使用了反向代理处理。
在vue.config.js里:
proxyTable: {
'/api':{
target:'localhost:9001',
// secure:true,
changeOrigin:true,
pathRewrite:{
"^/api":""
}
}
}
这里在mac和windows上写法不一样
windows:"target": "localhost:9001"
mac:"target": "http://127.0.0.1:9001"
pathRewrite 详解:
1.要理解pathRewrite,首先要明白proxyTable下‘/api’的作用。
使用代理, 首先需要有一个标识, 标明哪些连接需要使用代理,只有有标识的连接才用代理。”/api”就是告知,接口以”/api”开头的才用代理,所以写请求接口时要使用“/api/xx/xx”的形式,使用代理后生成的请求路径就是’http://localhost:9001/api/xx/xx’.
2.pathRewrite中 “^/api”:""的作用
当实际需要请求的路径里面没有”/api“时. 就需要 pathRewrite,用"^/api":"", 把'/api'去掉, 这样既能有正确标识, 又能在请求到正确的路径。