一、浩句
有些事,明知是错的,也要去坚持,因为不甘心;有些人,明知是爱的,也要去放弃,因为没有结局;有时候,明知没路了,却还在前进,因为习惯了。
二、背景
最近跟前端测试,前端在调用的时候跨域了,所以就需要解决这个跨域的问题了,因为项目是struts2的,所以下面说说跨域的方式。
三、jsonp的形式跨域
3.1:前端调用代码
$.ajax({
type:'get',
dataType:'JSONP',
jsonp:'callBack',
jsonpCallback:'jQuery',
async: false,
url:ajaxUrl,
data: ajaxData,
beforeSend:function(xhr){
},
success: function (data) {
console.log('data',data);
if(data.list.length>0){
_this.tplCouponHtml(data.list);
} else {
_this.noData();
}
},
error:function (xhr,ts) {
console.info("error: " + xhr.responseText);
}
});
3.2:后台代码jsonp直接以流的形式写出
List list= userService.getUserList();
responseText = callBack + "(" + JSON.toJSONString(list) + ")";
httpServletResponse.setCharacterEncoding("UTF-8");
PrintWriter out = this.httpServletResponse.getWriter();
out.print(responseText);
out.flush();
out.close();
3.3:我的是struts2的,所以我可以返回页面,并在页面取值
<%@ page contentType="text/html;charset=utf-8"%>${responseText}