window.callback = function(result) { console.log(result); }; var JSONP = document.createElement(‘script‘); JSONP.type = ‘text/javascript‘; JSONP.src = "https://opendata.baidu.com/api.php?query=%E5%85%A8%E5%9B%BD&resource_id=39258&tn=wisetpl&format=json&cb=" + callback; document.getElementsByTagName("head")[0].appendChild(JSONP);
理解如下:
1、jsonp的原来就是动态向html中插入script标签
2、此script标签的src是请求的接口,因为src是get的请求方式,所以jsonp只适合用于get请求
3、src链接后面的cb回调函数,是需要和后台协商一致的,后台会把数据当做回调函数的参数传进来,所以jsonp是需要后台配合的
4、由于script标签使用src引入资源,在当前页面中是会直接执行的,所以等结果请求返回之后,cb回调函数就是立即执行,拿到后台的数据
至此完毕
原文:https://www.cnblogs.com/gopark/p/12285496.html