JSONP跨域请求库
- 支持请求script js
- 状态回调
- 取消请求
Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | 7+ ✔ |
使用npm:
$ npm install --save http-jsonp
使用Yarn:
$ yarn add http-jsonp
CDN:
<script type="text/javascript" src="https://unpkg.com/http-jsonp/dist/http-jsonp.min.js"></script>
一个 JsonpCallbck
请求:
import httpJsonp from "http-jsonp";
httpJsonp({
url: "/user",
params: {
ID: 123456
},
callbackProp: "callback",
callback: function(data) {
console.log("callback", data);
},
error: function(err) {
console.log(err);
},
complete: function() {
console.log("complete");
}
});
一个 script
请求:
import httpJsonp from "http-jsonp";
httpJsonp({
url: "/lodash.js",
params: {
v: "3.8.0"
},
load: function() {
console.log("load", window._);
},
error: function(err) {
console.log("error");
},
complete: function() {
console.log("complete");
}
});
可以通过将相关选项传递给 httpJsonp
来进行请求
{
// `baseURL`将被添加到`url`,除非`url`是绝对的。
baseURL: "", // baseURL: "https://example.com/api/"
// `url`是将用于请求的服务器URL。
url: "", // url: "/jsonpdata"
// `params`是随请求一起发送的URL参数。(包括回调行为)
params: {},
// `callbackProp` 指定 `params` 中的哪个键作为Callback接口。
// 如果指定了 `params` 中一个存在的键值,则指定的值将覆盖默认的随机名称 `callbackName`
callbackProp: false, // default [false, callbackProp]
// `callbackNamespase` Callback名称前的命名空间
// exmaple:
// "__httpJsonpCallback" = window.__httpJsonpCallback = {}
callbackNamespase: "__httpJsonpCallback", // default
// `callbackName` Callback名称。 (如果未指定,则随机生成名称)
callbackName: "",
// `timeout` 指定请求超时时间(毫秒)。
timeout: 60000, // default
// 脚本属性
scriptAttr: {
type: "",
charset: "",
crossOrigin: null,
async: true,
defer: false
},
// 无痕请求(请求完成后脚本标记是否保留)。
keepScriptTag: false,
// callbackProp = "callback"
// 当 callbackProp 存在时,如果请求加载完成则要调用的函数。
callback: null,
// callbackProp = false
// 当callbackProp为false时,如果请求加载完成则要调用的函数。
load: null,
// 请求失败时要调用的函数。
error: null,
// 无论请求成功或者失败都调用都函数。
complete: null
}
MIT