使用@CrossOrigin实现跨域请求

时间:2022-08-28 17:05:35

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的值便可)。