Script标签的src属性不受同源策略的限制而完成跨域操作的一门技巧
且该方法只适用于get请求传值,对于post请求则无法完成。
(function(w){ w.lufei = {}; w.lufei.jsonp = function(obj){ var defaults = { url:"#", data:{}, type:"get", jsonp:"callback", jsonpCallback:"hehe", success:function(data){ console.log(data); } }; for(var key in obj){ defaults[key] = obj[key]; } var params = ""; for(var attr in defaults.data){ params +=attr+"="+defaults.data[attr]+"&"; } if(params){ params = params.substring(0,params.length-1); } defaults.url +="?"+params; defaults.url +="&"+defaults.jsonp+"="+defaults.jsonpCallback; var script =document.createElement("script"); script.src = defaults.url; window[defaults.jsonpCallback] = function(data){ defaults.success(data); }; var head = document.querySelector("head"); head.appendChild(script); } })(window)