客户端:
<html>
<body>
<script>
// jsonp请求的回调函数
function getJsonpData(data) {
Object.keys(data).forEach(key => {
console.log(`${key}: ${data[key]}`);
const div = document.createElement('div');
div.innerHTML = data[key];
document.body.appendChild(div);
})
}
</script>
<script type="text/javascript" src="http://localhost:5000/jsonpTest?callback=getJsonpData"></script>
</body>
</html>
nodejs服务端:
var express = require('express');
const app = express();
var server = app.get('/jsonpTest', (req, res) => {
// 要返回的数据
const data = {
"name": "tom",
"age": 24,
"city": "guangzhou"
}
// 获取请求中的回调函数名称
const callFn = req.query.callback;
// 通过返回 cbFnName(JSON.stringify(data)) 触发客户端的回调函数执行
res.send(`${callFn}(${JSON.stringify(data)})`);
});
server.listen(5000, () => {
console.log('server start!')
});