一、浩句
有些事,明知是錯的,也要去堅持,因為不甘心;有些人,明知是愛的,也要去放棄,因為沒有結局;有時候,明知沒路了,卻還在前進,因為習慣了。
二、背景
最近跟前端測試,前端在調用的時候跨域了,所以就需要解決這個跨域的問題了,因為項目是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}