二级域名怎么指向另外一个网站/十大基本营销方式
跨域 -> Jsonp
起源
最近在与后端交互时,发现线上地址的接口与页面不在同一个域下面,不知道何种原因,历史版本都是采用jsonp
跨域,本次记录一下函数实例,方便日后查询,及供各位参考,JSONP这个跨域方法是需要后端支持的!
js 跨域函数
// JSONP跨域
// url: 需要获取的接口地址
// callback: 接收数据的回调函数
function getJSONP(url, callback) {if (!url) {return;}var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']; //定义一个数组以便产生随机函数名var r1 = Math.floor(Math.random() * 10);var r2 = Math.floor(Math.random() * 10);var r3 = Math.floor(Math.random() * 10);var name = 'getJSONP' + a[r1] + a[r2] + a[r3];var cbname = 'getJSONP.' + name; //作为jsonp函数的属性if (url.indexOf('?') === -1) {url += '?jsonpcallback=' + cbname; //jsonpcallback为回调函数名} else {url += '&jsonpcallback=' + cbname;}var script = document.createElement('script');// 定义被脚本执行的回调函数getJSONP[name] = function (e) {console.log('e', e)try {callback && callback(e);} catch (e) {//}finally {//最后删除该函数与script元素delete getJSONP[name];script.parentNode.removeChild(script);}}script.src = url;document.getElementsByTagName('head')[0].appendChild(script);
}
jsonp跨域原理
参考我之前看到的一篇文章,写的很棒
JSONP跨域原理