今天在看到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所在的标签之前就要定义好。