JS跨域请求貌似只能用JSONP方式
用jquery+ajax使用JSONP方式跨域请求数据(这里需要后台配合返回)
$.ajax({
type : "GET",
url : url, //请求链接
data : {loginName:"admin"} ,
dataType:'jsonp', //jsonp跨域请求
jsonp: 'callback',
jsonpCallback:'jsonpCallback', //这里为后台返回的动态函数,可自定义,与后台返回格式需要相符合
error : function(response) {
alert("请求失败");
},
success : function(response) {
//var data = eval("(" + response + ")");
var data = response;
alert(data);
}
});
后台返回格式如下
//返回的json数据必须包含在jsonpCallback()方法,改方法名与前端需相对应;必须有该方法,否则前端json格式则会解析错误
String str = "jsonpCallback({'name':'123','age':'20'})"; //正确的jsonp返回格式
PrintWriter out = response.getWriter();
out.write(str);
也可以用$.getJSON()进行跨域请求(同样要注意jsonpCallback方法与后台对于)
$.getJSON(url+"?参数"+"&jsoncallback=?", function(json){ if(json.属性名==值){ // 执行代码 } });