后端使用 express 搭建,案例代码如下:
const express = require('express')
const app = express()
const PORT = 3000
app.get('/data', (req, res) => {
const jsonData = {
name: 'Alan',
age: 666,
city: 'GD'
}
const callback = req.query.callback
if (callback) {
res.send(`${callback}(${JSON.stringify(jsonData)})`)
} else {
res.status(400).send('Callback function name is required')
}
})
app.listen(PORT, () => { console.log(`listen http://localhost:${PORT}`) })
前端发起 JSONP 请求,实现跨域数据请求
<body>
<pre></pre>
<script>
function handleJsonpData(data) {
document.querySelector('pre').innerText = JSON.stringify(data, null, 4)
}
const script = document.createElement('script')
script.src = 'http://localhost:3000/data?callback=handleJsonpData'
document.body.appendChild(script)
</script>
</body>
</html>
效果

