Jsonp原生写法
发布日期: 2020-10-10 00:00:00
点击次数: 1011
点击次数: 1011
大字
小字
JSONP不使用XMLHttpRequests。
使用JSONP的原因是为了克服XHR的跨域限制。
为简单起见,如果请求失败,则不包括错误处理。script.onerror如果需要,请使用。
//jsonp 封装
function jsonp(options) {
options = options || {};
return new Promise(function (resolve, reject) {
var oScript = document.createElement('script');
document.body.appendChild(oScript);
var name = "_jsonp_" + Math.round(100000 * Math.random());
options.url += (options.url.match(/\?/) ? '&' : '?') + "callback=" + name
oScript.src = options.url
window[name] = function (data) {
resolve(data);
document.body.removeChild(oScript);
delete window[name];
};
});
}
// 调用
jsonp({
url: jurl
}).then((res) => {
mkWxShare(response)
});
参考来源:https://my.oschina.net/u/4409855/blog/3617092
https://www.imooc.com/wenda/detail/594959
使用JSONP的原因是为了克服XHR的跨域限制。
为简单起见,如果请求失败,则不包括错误处理。script.onerror如果需要,请使用。
//jsonp 封装
function jsonp(options) {
options = options || {};
return new Promise(function (resolve, reject) {
var oScript = document.createElement('script');
document.body.appendChild(oScript);
var name = "_jsonp_" + Math.round(100000 * Math.random());
options.url += (options.url.match(/\?/) ? '&' : '?') + "callback=" + name
oScript.src = options.url
window[name] = function (data) {
resolve(data);
document.body.removeChild(oScript);
delete window[name];
};
});
}
// 调用
jsonp({
url: jurl
}).then((res) => {
mkWxShare(response)
});
参考来源:https://my.oschina.net/u/4409855/blog/3617092
https://www.imooc.com/wenda/detail/594959