跨域问题---Jsonp原理

上图中很好的指出了跨域问题的所在,所谓跨域就是  跨越不同的域名进行访问。

跨域访问是不可以接收到服务端返回的数据的!!!但是服务端的响应状态看起来是没有毛病滴。

现在开始处理跨域问题

1.我们需要先在一个通用的js文件中写上一个function,就像这个样子(借取的宜立方商城项目的片段)

checkLogin : function(){
var _ticket = $.cookie("token");    //从cookie中获取自己模拟的session,(单点登录系统)
if(!_ticket){   //  判断是否存在
return ;
}
$.ajax({
url : "http://localhost:8088/user/token/" + _ticket,    //ajax请求的地址
dataType : "jsonp",     //  jquery封装的  说明这个请求就是一个jsonp 跨域请求
type : "GET",
success : function(data){
if(data.status == 200){
var username = data.data.username;
var html = username + ",欢迎来到宜立方购物网!<a href=\"http://www.e3mall.cn/user/logout.html\" class=\"link-logout\">[退出]</a>";
$("#loginbar").html(html);
}
}
});
}

2.请求的参数

这个需要特别的注意!!!  默认是callback 

3.响应的数据既然不能识别json,那么我们就给它拼成一个js文件返回来,这个拼出来的js的名称需要跟js文件中定义好的方法名称格式一致。这样前端的js就可以识别该返回值 并且执行啦。

另外需要注意的!!!


返回的数据类型应该是application/json;charset=utf-8