一.环境:
前端 vue element-ui
后端:spring boot
工具:IDEA Maven Node
数据库:MySql
二.首先我们需要了解什么叫跨区域访问问题
跨区域访问是指:不同域名之间相互访问
也就是A网址通过AJAX发送请求访问B网站 A和B在不同IP或者不同端口的时候会出现这个问题
三:什么是同一个域
同一协议 同一IP 同一端口 三者一不相同 出现跨区域访问问题
四:前端vue 跨区域解决方案
最快的方式是通过安装vue-resource,找到当前前端项目
输入:npm install vue-resource --save
然后在需要使用的地方添加vue-resource
import Vue from 'vue'
import VueResourse from 'vue-resource';
Vue.use(VueResourse) let params=this.ruleForm
this.$http.get('http://localhost:8080/login/CheckLogin',{params}).then((res)=>{
console.log("res=====>"+JSON.stringify(res))
}).catch((res)=>{
console.log("res=====>"+JSON.stringify(res))
})
五:后端跨区域解决方案
后端跨区域比较简单,最好的方法就是添加:@CrossOrigin
@Controller
@RequestMapping(value = "/login")
@CrossOrigin
public class loginController { private final Logger logger = LoggerFactory.getLogger(loginController.class); @Autowired
UserService userService;
/**
* 登录密码校验模块
*/
@ResponseBody
@RequestMapping(value = "/CheckLogin", method = RequestMethod.GET)
@CrossOrigin
public String CheckLogin(@RequestParam Map<String,Object> map) {
logger.info("登录操作=>开始入参"+JSON.toJSONString(map)); MessageBean messageBean=new MessageBean();
messageBean=userService.selectUser(map);
logger.info("登录操作=>结束"+JSON.toJSONString(messageBean));
return JSON.toJSONString(messageBean);
}
}
即可以解决跨区域问题