**
代码实现jsonp工作原理
**
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 函数参数解构
function jsonp({ url, params, cb }) {
return new Promise((resolve, reject) => {
// 全局的函数fn
window[cb] = function (data) {
resolve(data)
}
// script标签里面 params: {} -> prod=pc&from=pc_web&cb=show
let script = document.createElement('script')
// script.src = url +
let uri = ''
Object.keys(params).forEach(key => {
uri += `${key}=${params[key]}&`
})
script.src = url + uri + `cb=${cb}`
// 把script标签添加到document里面去
document.body.appendChild(script)
})
}
jsonp({
url: 'https://www.baidu.com/sugrec?',
params: {
prod: 'pc',
from: 'pc_web',
wd: '小明'
},
cb: 'show'
}).then(res => {
console.log(res)
})
</script>
<!-- 全局show方法 -->
<!-- <script>
function show(data) {
console.log('show', da)
}
</script> -->
<!-- 引入的外链接 -->
<!-- <script src="https://www.baidu.com/sugrec?prod=pc&from=pc_web&wd=%E9%BB%91%E9%A9%AC1&cb=show"></script> -->
</body>
</html>