jsonp 是跨域调用数据的常用方法,但是由于 每次调用数据都请求服务器所以这一点很是令人烦恼, 虽然服务器可以什么都不做 直接返回 304, 但毕竟还是发起了一次请求
在 jQuery 下 jsonp 的简写方法如下:
$.getJSON("http://api.asilu.com/weather/?callback=?", function(s){
console.log(s);
});
$.getJSON 行不通 就用 $.ajax 开启缓存试试
$.ajax({
url : 'http://api.asilu.com/weather/',
dataType : "jsonp",
cache: true, // 开启缓存
jsonp: 'callback',
success : function(s){
console.log(s);
}
});
URL 查询参数 的变化主要就是 ?callback=jQuery********* 所以就有了本例的最终代码
$.ajax({
url : 'http://api.asilu.com/weather/',
dataType : "jsonp",
cache: true,
jsonpCallback: "jsonpCallback",
success : function(s){
console.log(s);
}
});
当然还有必不可少的服务单配合, 主要就是输出 HTTP 头的 Expires / Cache-control 信息即可