|
@@ -145,4 +145,27 @@ export function jsonp(url, params, callbackName = 'jsonp_callback') {
|
|
script.onerror = (error) => reject(error);
|
|
script.onerror = (error) => reject(error);
|
|
document.body.appendChild(script);
|
|
document.body.appendChild(script);
|
|
});
|
|
});
|
|
|
|
+}
|
|
|
|
+export function jsonp2(url, params, callbackName = 'jsonp_callback') {
|
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
|
+ // 创建一个全局回调函数
|
|
|
|
+ const callbackName = `jsonp_callback_${Date.now()}`;
|
|
|
|
+ window[callbackName] = function (data) {
|
|
|
|
+ resolve(data); // 解析数据
|
|
|
|
+ delete window[callbackName]; // 清理全局回调函数
|
|
|
|
+ document.body.removeChild(script); // 移除 script 标签
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ // 创建 script 标签
|
|
|
|
+ const script = document.createElement('script');
|
|
|
|
+ script.src = `${url}&callback=${callbackName}`;
|
|
|
|
+ script.onerror = () => {
|
|
|
|
+ reject(new Error('JSONP 请求失败'));
|
|
|
|
+ delete window[callbackName]; // 清理全局回调函数
|
|
|
|
+ document.body.removeChild(script); // 移除 script 标签
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ // 将 script 标签添加到文档中
|
|
|
|
+ document.body.appendChild(script);
|
|
|
|
+ });
|
|
}
|
|
}
|