方法一 、使用ajax进行跨域请求 方法json数据
- 配置拦截器
用于允许指定的请求跨域
...
public void doFilter(ServletRequest request, ServletResponse res, FilterChain chain) throws IOException, ServletException {
String url = ((HttpServletRequest) request).getRequestURI();
HttpServletResponse response = (HttpServletResponse) res;
if (url != null && url.indexOf("/json/") != -1) { // 对含有json的请求支持跨域
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
response.setHeader("Access-Control-Allow-Methods", "POST, GET");
}
}
...
为含有/json/
的url设置允许跨域
- 编写控制器
返回json数据
- 跨域访问实例
通过ajax跨域访问
方法二、使用jsonp实现跨域请求
只能用get请求。
- 编写控制器
返回jsonp类型数据,与json不同的是需要这样callback(jsondata)
- 测试
依旧使用jquery
$('body').on('click', 'div#o', function(e) {
var s = this;
s.innerHTML = "nihao"
$.ajax({
url:"http://localhost:8080/XrtFirm/jsonp/ss",
dataType: 'jsonp',
data: {auth: 'yanzheng'},
success: function(data) {
s.innerHTML = JSON.stringify(data)
},
error: function (xhr, type) {
s.innerHTML = type
}
});
})
网友评论