<button id="g80sy"></button>
  • <abbr id="g80sy"></abbr>
  • <button id="g80sy"></button>
    <rt id="g80sy"><delect id="g80sy"></delect></rt>
  • 【前端面試】JS如何實現(xiàn)跨域

    程序猿 2021-03-31 19:56:02 2320瀏覽 加載中

    對于端口和協(xié)議的不同,只能通過后臺來解決。我們要解決的是域名不同的問題。

    1,下面是用php進行的設置,“*” 號表示允許任何域向我們的服務端提交請求,header({Access-Control-Allow-Origin: *)

    2,JSONP(ISON with Padding填充式JSON或參數(shù)式JSON)

    在js中,我們雖然不能直接用XML HttpRequest請求不同域上的數(shù)據(jù),但是在頁面上引入不同域上的js腳本文件卻是可以的,jsonp正是利用這個特性來實現(xiàn)的。JSONP由兩部分組成:回調函數(shù)和數(shù)據(jù)。回調函數(shù)是當響應到來時應該在頁面中調用的函數(shù),而數(shù)據(jù)就是傳入回調函數(shù)中的JSON數(shù)據(jù)。

    <script type="text/javascript" >
        function dosomething(jsondata){
            //處理獲得的json數(shù)據(jù)
        }
    </script>
    <script src ="http://example . com/ data. php?callback=dosomething" ></script>

    首先第一個script標簽定義了一個處理數(shù)據(jù)的函數(shù):

    然后第二個script標簽載入-個js 文件,http: //example.com/data.php 是數(shù)據(jù)所在地址,但是因為是當做js來引入的,所以http: //example.com/data php返回的必須是一個能執(zhí)行的js文件;

    最后js文件載入成功后會執(zhí)行我們在url參數(shù)中指定的函數(shù),并且會把我們需要的json數(shù)據(jù)作為參數(shù)傳入。所以php應該是這樣的:

    <?php
        $callback = $_ GET['callback”];//得到回調函數(shù)名
        $data = array('a', 'b','c" );//要返回的數(shù)據(jù)
        echo $callback. "('.json encode($data).")";//輸出
    ?>


    最后修改:2025-09-13 02:46:42

    非特殊說明,本博所有文章均為博主原創(chuàng)。

    主站蜘蛛池模板: 伊春市| 奉新县| 敖汉旗| 永兴县| 安龙县| 鲁山县| 阆中市| 丰县| 修武县| 察哈| 溧阳市| 安远县| 大荔县| 织金县| 白朗县| 辽宁省| 奉新县| 邢台县| 佛学| 萍乡市| 宣化县| 泸西县| 竹北市| 襄城县| 南郑县| 营山县| 咸阳市| 镇原县| 疏勒县| 甘泉县| 衡东县| 四平市| 吉隆县| 十堰市| 义乌市| 应用必备| 徐闻县| 沁水县| 辽源市| 那坡县| 建阳市|