先说下使用场景,前后台都在自己电脑上,然后后台是直接在idea上启动的端口号是:8080
前台不打包时直接启动后去访问后台接口时提示跨域问题,然后就在 "vue.config.js" 下配置了本地代理,然后是可以访问到后台接口的。
然后前台 npm run build 打了一个包,然后部署在了iis上(这个很楼,一般都部署在tomcat上或者nginx上)再去访问的时候它提示我404,然后在网上查了下资料说本地代理的配置通过npm run build 后就不起作用了。
然后就通过后台解决跨域问题
在controller里添加一个@CrossOrigin注解,然后把前台项目配置的本地代理删除掉,重新打了一个包,部署到iis上然后运行,竟然直接能访问到了。这里是部分代码
# 后台代码
@RestController
@RequestMapping("/api")
@CrossOrigin
public class userController {
@Autowired
PersonService personService;
@GetMapping("/getPersonById")
public String getPersonById(@RequestParam Map<String,Object> map) throws JSONException {
PersonDto personDto = personService.getPersonById(1);
return personDto.getName();
}
}
# 前台代码
this.$axios
.get("api/getPersonById")
.then(response => alert("请求成功"))
.catch(error => alert("请求失败"));