1. 程式人生 > >關於jsonp跨域 不會執行回撥函式的問題

關於jsonp跨域 不會執行回撥函式的問題

今天在看到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所在的標籤之前就要定義好。