jsonp解决原生ajax跨域问题
需求:两个项目代码部署到两个服务器上,访问不同的数据库,相互跳转,请求数据。
$.jsonp({
url: '/homepage/login',
data : $("#newloginform_submit").serialize(),
type : 'post',
contentType : "application/x-www-form-urlencoded; charset=utf-8",
callbackParameter:"callback",
success: function (newImgSrc, textStatus, xOptions) {
console.log(newImgSrc.data)
},
error: function (xOptions, textStatus) {
var result = xOptions;
if(result!=undefined){
result = result.substr(result.indexOf('decodeURIComponent')+20,result.indexOf('));')-56);
if(result!=''){
alert(decodeURIComponent(result));
}
}
}
});
后端需jsonp的返回格式,前端才可以解析
public String login(HttpServletRequest request) throws Exception {
String callback = ServletRequestUtils.getStringParameter(request, "callback", "callback");
HomepageResultMessage rm = new HomepageResultMessage();
JSONObject dataJson = new JSONObject();
dataJson.put("user","user");
rm.setStatusCode("success");
rm.setData(dataJson);
return JsonpUtil.obj2jsonp(callback, rm);
}