<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 59, comments - 244, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    web三種跨域請求數據方法

    Posted on 2013-01-11 13:19 penngo 閱讀(9692) 評論(0)  編輯  收藏 所屬分類: javascript
    以下測試代碼使用php,瀏覽器測試使用IE9,chrome,firefox,safari

    <!DOCTYPE HTML>
    <html>
    <head>
        <meta charset="UTF-8">
        <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script>
        <script type="text/javascript" id="loadjson"></script>
        <script type="text/javascript">
        
    // 第一種
        // test1.php在服務器設置請允許跨域(注意:IE9測試不通過)
        $.ajax({
               type: 'POST',
               url: 'http:
    //127.0.0.1:8081/test/test1.php',
               data: 'name=penngo',
               dataType: 'json',
               success: 
    function(msg){
                  $('#json').html(JSON.stringify(msg));
               }
            });

        
    /* 
        第二種JSONP:
        在客戶端動態注冊一個函數function test(data),然后將函數名傳到服務器,服務器返回一個test({json})到客戶端運行,這樣就調用客戶端的function test(data),從而實現了跨域,jquery已經支持jsonp
        
    */
        
    // test2.php使用jsonp
        $.ajax({
               type: 'GET',
               url: 'http:
    //127.0.0.1:8081/test/test2.php?callback=?',
               data: 'name=penngo',
               dataType: 'jsonp',
               success: 
    function(msg){
                  $('#jsonp').html(JSON.stringify(msg));
               }
            });

        
    /*
        第三種,原理與jsonp類似,web頁面上調用js文件時不受跨域影響,
        只要利用<script>標簽的src屬性,動態加載js方式就能跨域,該方式為異步,通過testjs()回調
        
    */
        
    var testjs = function(msg){
             $('#js').html(JSON.stringify(msg));
        }
        $('#loadjson')[
    0].src = 'http://127.0.0.1:8081/test/test3.php?method=testjs&name=penngo';
        </script>

    </head>
    <body>
        header跨域:
        <div id="json">
            
        </div>
        <br/>
        jsonp跨域:
        <div id="jsonp">
            
        </div>
        <br/>
        js請求實現跨域:
        <div id="js">
            
        </div>
    </body>
    </html>

    服務器端處理
    test1.php
    <?php
        header("Access-Control-Allow-Origin: *");
        $name = $_REQUEST['name'];
        $result = array('success'=>1, 'name'=>$name);
        echo json_encode($result);
    ?>

    test2.php
    <?php
        $callback = $_REQUEST['callback'];
        $name = $_REQUEST['name'];
        $result = array('success'=>1, 'name'=>$name);
        $jsonData = json_encode($result);
        echo $callback . "(" . $jsonData . ")";
    ?>

    test3.php
    <?php
        $method = $_REQUEST['method'];
        $name = $_REQUEST['name'];
        $result = array('success'=>1, 'name'=>$name);
        $jsonData = json_encode($result);
        header('Content-type:application/x-javascript');
        echo "$method($jsonData);";
    ?>



    IE9測試,頁面輸出內容
    header跨域: 
    jsonp跨域: 
    {"success":1,"name":"penngo"}
    js請求實現跨域: 
    {"success":1,"name":"penngo"}
    chrome,firefox,safari測試,頁面輸出內容
    header跨域:
    {"success":1,"name":"penngo"}
    jsonp跨域:
    {"success":1,"name":"penngo"}
    js請求實現跨域:
    {"success":1,"name":"penngo"}
    主站蜘蛛池模板: 色噜噜狠狠色综合免费视频| 亚洲伊人精品综合在合线| 亚洲国产美女精品久久久| 亚洲精品福利网站| 三年片在线观看免费观看大全一 | 日韩成人免费aa在线看| 亚洲看片无码在线视频| 好吊妞视频免费视频| 亚洲AV无码专区亚洲AV伊甸园 | 久久亚洲av无码精品浪潮| 一级黄色片免费观看| a级亚洲片精品久久久久久久 | 国产高清不卡免费在线| 亚洲福利视频网址| 成人影片麻豆国产影片免费观看 | 国产成人自产拍免费视频| 免费观看的a级毛片的网站| 亚洲国产精品无码中文lv| 免费jjzz在线播放国产| 一区二区三区免费看| 亚洲AV无码成人专区片在线观看| 日韩精品人妻系列无码专区免费 | 国内成人精品亚洲日本语音| 亚洲国产精品毛片av不卡在线 | 一级毛片免费观看不卡的| 亚洲va在线va天堂成人| 又黄又爽一线毛片免费观看| 免费a级毛片无码a∨免费软件| 99久久亚洲精品无码毛片| 日本免费中文视频| 亚洲日本久久久午夜精品| 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲AV无码乱码国产麻豆穿越| 男女免费观看在线爽爽爽视频| 久久精品国产亚洲AV网站| 可以免费看黄视频的网站| 四虎影视永久在线精品免费| 全黄性性激高免费视频| 国产免费爽爽视频在线观看| 精品亚洲综合久久中文字幕| 国产在线观看xxxx免费|