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

posted @ 2017-06-20 10:41  王甘林  阅读(37219)  评论(10编辑  收藏  举报