分析JavaScript的跨域原理(jsonp)

            前段時間給朋友分析了下經常使用的jsonp的跨域原理,跨域的方式有不少種,這裏簡單記錄一種jsonp,闡述一下分析思想,分析過程,找到解決問題的方式。java

            1.JavaScript怎麼跨域jquery

            2.爲何會出現跨域問題ajax

            3.經常使用的跨域插件是什麼json

            4.爲何<script src=""></script>不會產生跨域問題跨域

            5.java後臺跨域的處理是什麼原理瀏覽器

          跨域方式?dom

         (1) document.domain+iframe的設置函數

         (2) 利用iframe和location.hashjsonp

          (3)動態建立scripturl

         第三種也是咱們這裏主要分析的方式。

         在咱們經常使用的跨域解決方案就是,使用jquery 的ajax請求,url帶上一個callback=? 這樣就完成了跨域請求。具體是怎麼實現的?

         作過跨域請求的人,都知道callback會變成一個隨機函數名,在服務端返回數據的時候,會將數據以JavaScript函數調用的方式包裹,列如 jquery_33454523443543('我是數據參數')

        ok到這裏咱們內心應該有點疑惑,這難道是要在客戶端執行?

        爲何<script src=""></script>不會產生跨域問題

         既然<script >標籤不會產生跨域問題,那麼咱們是否能夠在這上面作些文章?

        分析到這裏咱們應該有所明悟,所謂的跨域就是使用JavaScript的標籤特性,進行二次封裝。獲得後臺的數據(生產的JavaScript函數)在瀏覽器執行,最終獲得的效果就表現成跨域。

         jQuery的callback函數應該也懂了?

         服務端爲什麼要使用匿名函數包裹數據?

         分析就記錄到這裏.....  

相關文章
相關標籤/搜索