JS实现简单的JSONP请求
- 思路
在dom中添加一个script脚本,url拼写到src属性中,其中一个关键的参数是callback,它是接收jsonp成功之后的回调。等请求成功之后,把回调函数释放。另外demo中添加了超时机制,详见demo如下:
var jsonpSeq = 0;
function jsonp(req) {
var callbackName = 'jsonpcb' + (++jsonpSeq);
//定义一个处理Jsonp返回数据的回调函数
window[callbackName] = function (object) {
console.log('callback...')
release('success');
req.success(JSON.parse(object));
}
var script = document.createElement("script");
//组合请求URL
script.src = req.url + "?callback=" + callbackName;
for (key in req.data) {
script.src += "&" + key + "=" + encodeURIComponent(req.data[key]);
}
console.log('src=' + script.src)
script.async = true;
//设置错误回调
script.onerror = function ()