某網站后臺用php腳本得到一個JSON格式的數據,交給前臺javascript進行處理,使用JSON實現數據的跨域調用.
后臺profile.php代碼如下:
- <?php
- $arr = array(
- 'firstname' => iconv('gb2312', 'utf-8', '非誠'),
- 'lastname' => iconv('gb2312', 'utf-8', '勿擾'),
- 'contact' => array(
- 'email' =>'fcwr@www.survivalescaperooms.com',
- 'website' =>'http://www.survivalescaperooms.com',
- )
- );
- //將一個數組JSON
- $json_string = json_encode($arr);
- //此處注意,雙引號能對里面的變量當變量進行處理,單引號則不會
- echo "getProfile($json_string)";
- ?>
需要指出的是,在非UTF-8編碼下,中文字符將不可被encode,結果會出來空值,所以,如果你使用 gb2312編寫PHP代碼,那么就需要將包含中文的內容使用iconv或者mb轉為UTF-8再進行json_encode.
前臺index.html代碼如下:
- <script type="text/javascript">
- function getProfile(str) {
- var arr = str;
- document.getElementById("firstname").innerHTML = arr.firstname;
- }
- </script>
- <body>
- <div id="firstname"></div>
- </body>
- <!-- 使用JSON實現跨域的數據調用,此處如將“profile.php”改為“http://另外一個域名/profile.php”就更能看出跨域了-->
- <script type="text/javascript" src="profile.php"></script>
將JSON格式的數據直接賦值給javascript中的變量,就變成數組了,接下來操作起來就會非常的方便,此處如果使用XML做為數據傳輸,后續操作就不方便.
很顯然,當index.html調用profile.php時,JSON字符串生成,并作為參數傳入getProfile,然后將昵稱插入到div 中,這樣一次跨域數據交互就完成了調用index.html.
新聞熱點
疑難解答