跨域问题---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