前不久做了一下录音跨域上传的接口,跨域顾名思义就是不同域名之间的相互请求,例如a.123.com\b.123.com如果a想调用b的接口跨域请求,如果一级域名不同,均属于跨域请求(我这样理解)在跨域请求中,如果是js端控制的,使用jsonp的ajax调用,我主要想说一下在服务端后台java代码中跨域调用的实现。
在后台java被请求的控制器端加入如下代码:
//跨域请求放行
response.setHeader(“Access-Control-Allow-Origin”,*);
表示任何域名都可以进行访问,在企业级开发中这样是不允许的,如果要设置特定的域名可以访问则如下设置
//跨域请求放行
response.setHeader(“Access-Control-Allow-Origin”,”http://a.123.com“);
这样只允许a.123.com的域名可以访问
除此之外还需要设置
response.setHeader(“Access-Control-Allow-Methods”,);该设置表示所有类型的请求都可以,如果只想接收post 或者get请求,那么设置“”号为POST 或者GET即可,其他的请求类型也可以设置。
此上是无需验证信息就可以访问的,如果需要登录验证的话,需要在js中传入验证信息,如下:
xhrFields: {
withCredentials: true
},
并且在java后台允许使用身份验证
response.setHeader(“Access-Control-Allow-Credentials”, “true”); 将该属性设置为true
如此就可以实现有无身份信息验证的跨域请求了,这样只是一个简单的设置,其他复杂设置,研究之后再进行补充。