關於jsonp跨域 不會執行回撥函式的問題
阿新 • • 發佈:2018-12-30
今天在看到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所在的標籤之前就要定義好。