使用@CrossOrigin实现跨域请求
1.毕设使用的是react+java开发的网上书城,大家都知道react主要是视图(表现层或页面),数据的处理还是通过java来实现的,所以我的毕设相当于是两个项目组成的,一个是前端项目,一个是后台项目,在react中我是用的是fetch来实现数据的异步请求,下面展示用户注册的代码:
fetch('http://localhost:8080/ssm/userController/register', { method: 'POST', headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: 'uname=' + uname + '&ubirth=' + ubirth + '&usex=' + usex + '&uaddress=' + uaddress + '&uaccount=' + account + '&upassword=' + password }) .then(function (response) { return response.json(); }) .then(function (data) { if (data[0]['code'] == '-1') { message.info('该手机号已经被注册'); } else { hashHistory.push("/login"); } }) .catch(function (err) { //console.log(err); })
上面的 http://localhost:8080/ssm/userController/register 是一个url,这个地址是后台的一个action,我们在前端的服务器中要请求Tomcat中的这个action,这就是跨域请求,实现跨域请求的第一步是后台代码要允许跨域,这里我们最简单的方法是使用springMVC的注解 @CrossOrigin(origins = "*", maxAge = 3600) ,这里要强调的是springMVC的版本要在4.2或以上版本才支持@CrossOrigin,我这里的设置是允许所有跨域访问,也可以单独指定允许的服务器跨域(设置origin的值便可)。