今天在看到ajax的跨域方法时,注意到了一个以前用过的jsonp方法,但是自己只是单纯跟着网上教程使用而已。
但在尝试着自己搭建后台来让浏览器使用jsonp方法获取资源时,却发现无论如何修改都不能执行回调函数。索性自己就胡搞一番(反正是再闲暇时间),但是却让我瞎碰对了。
我的后台使用的node.js+express ,请看下面代码:
app.get('/test', function (req, res) {
res.send(`${req.query.callback}(123)`)
})
后台接收到callback字段,并返回一个 执行函数的字符串(‘callbackFunction(123)’)
<script>
function callbackFunction(result) {
console.log(result)
}
</script>
<script src="http://192.168.0.107/test?callback=callbackFunction"></script>
前端这一块会执行这个callbackFunction的函数,是后台返回的时候执行的,所以函数声明一定要在jsonp所在的标签之前就要定义好。