浏览器不允许进行跨域请求.会将成功返回的数据进行拦截.不予显示.一切出于安全性
的考虑
同源策略
规则:
请求协议/域名/端口号是否相同,如果三者都一致,那么是同域访问.(即同源策略)浏
览器可以正常执行.除此之外的全部的请求都是跨域请求.
怎么解决跨域问题
利用 javascript 中 src 属性实现跨域.
客户端定义回调函数 callback=hello
服务端程序封装特定的 JSON 格式 callback(JSON) 执行回调函数
JSONP 就是基于这个原理实现的
JQuery 中怎么使用 JSONP
跨域的缺点:回调的函数需要提前定义.程序员自己定义.
解决方案: 采用 jQuery 中的 JSONP 实现跨域的请求.
语法:
$.ajax({
url:“http://manage.jt.com/web/testJSONP”,
type:“get”,
dataType:“jsonp”, //返回值的类型 JSONP 必须添加否则不能回调 函数
jsonp: “callback”, //指定参数名称
jsonpCallback: “hello”, //指定回调函数名称
success:function (data){
alert(data.id);
alert(data.name);
//转化为字符串使用
//var obj = eval("("+data+")");
//alert(obj.name);
}
});