$http get
这种跨域方式,是通过后台配置response来实现的。
前端:
$http.get("http://localhost:8080/hscloud/test/get").success(
function(data){
alert(data);
});
后台配置:
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String url = request.getRequestURI();
if(url.startsWith("/hscloud/test")){
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods","GET,POST");
response.setHeader("Access-Control-Allow-Headers","X-Requested-With, Content-Type");
}
return true;
}
$http post
注意:这里post实际是将参数放在header里面存储的,面前还没有找到将数据存放在body里面进行跨域请求的方法。后面找到会进行补充。
后台代码同上。
前端:
$http({
url:'http://localhost:8080/hscloud/test/post',
method:'POST',
params:{test:'ttttt'},
data:{ttt:'ttttttttttttttt'},
headers:{'Content-Type':'application/x-www-form-urlencoded'}
}).success(function(data){
console.log(data);
}).error(function(){});
JSONP 方式
这种方式目前只支持get请求
$http.jsonp("http://192.168.150.135:5000/v1/search?callback=JSON_CALLBACK")
.success(function(data){
console.log(JSON.stringify(data));
});