通過jquery的$.getJSON自己做一個跨域ajax請求試驗 – JAVA編程語言程序開發技術文章

 jquery提供瞭$.getJSON的方法,讓我們可以實現跨域ajax請求,但jqueryAPI上的內容實在太少,如何用$.getJSON,請求網站應該返回怎樣的數據庫才能讓$.getJSON獲取到,下面我就用一個實際例子來說明下。(主要是留個備用,怕以後再用到自己卻忘記瞭,所以沒有太多的解釋,實在看不明白的話,照著我的代碼,你也試一個吧)


  我後端是用php的,以下代碼主要實現的一個功能就是提供一個預約登記的接口,需要傳入的數據分別有:用戶姓名、聯系電話和地址


view sourceprint?……
view sourceprint?/*預約登記 執行 接口*/


case “yuyue_interface”: 


    $name = trim($_GET[name]); 


    $phone = trim($_GET[phone]); 


    $addr = trim($_GET[addr]); 


    $dt = date(“Y-m-d H:i:s”); 


    $cb = $_GET[callback]; 


    if($name == “” || $name == NULL){ 


        echo $cb.”({code:”.json_encode(1).”})”; 


    }elseif($phone == “” || $phone == NULL){ 


        echo $cb.”({code:”.json_encode(2).”})”; 


    }elseif($addr == “” || $addr == NULL){ 


        echo $cb.”({code:”.json_encode(3).”})”; 


    }else{ 


        $db->execute(“insert into tb_yuyue (realname,telphone,danwei,dt,ischeck) values ($name,$phone,$addr,$dt,0)”); 


        echo $cb.”({code:”.json_encode(0).”})”; 


    } 


    exit; 


break;
view sourceprint?……


  接著就是前端的處理瞭


view sourceprint?$(document).ready(function(){ 


    //以下3個為預約登記需要的參數 


    var name = “name”;      //varchar類型,長度最多為8位(4個漢字) 


    var phone = “phone”;    //varchar類型,長度為11位 


    var addr = “addr”;      //varchar類型,長度最多為500位(250個漢字) 


    $.getJSON(“https://請求網站地址/data.php?ac=yuyue_interface&name=”+name+”&phone=”+phone+”&addr=”+addr+”&callback=?”, function(data){ 


        if(data.code==1){ 


            //自定義代碼 


            alert(“姓名不能為空”); 


        }else if(data.code==2){ 


            //自定義代碼 


            alert(“手機不能為空”); 


        }else if(data.code==3){ 


            //自定義代碼 


            alert(“所在單位不能為空”); 


        }else{ 


            //自定義代碼 


            alert(“預約成功”); 


        } 


    }); 


});


  需要註意的是,在後端php代碼裡,必須把傳遞進來的“ &callback=? ”也輸出來,如:


view sourceprint?$cb = $_GET[callback]; 


echo $cb.”({code:”.json_encode(4).”})”;


  以上就是一個簡單的$.getJSON試驗,通過這個試驗,我們可以學到如何用$.getJSON,也能學到如何做一個接口讓別人跨域請求。


  如果有疑問,可以在下面提出來,如果我哪裡寫錯瞭,也請幫我指出來。


 

發佈留言