當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSONP 跨域共享信息
生活随笔
收集整理的這篇文章主要介紹了
JSONP 跨域共享信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定義來源:http://zh.wikipedia.org/wiki/JSONP
JSONP(JSON with Padding)是資料格式?JSON?的一種“使用模式”,可以讓網頁從別的網域要資料。另一個解決這個問題的新方法是跨來源資源共享。
由于同源策略,一般來說位于 server1.example.com 的網頁無法與不是 server1.example.com 的服務器溝通,而?HTML?的?<script>?元素是一個例外。利用?<script>?元素的這個開放策略,網頁可以得到從其他來源動態產生的 JSON 資料,而這種使用模式就是所謂的 JSONP。用 JSONP 抓到的資料并不是 JSON,而是任意的 JavaScript,用 JavaScript 直譯器執行而不是用 JSON 解析器解析。
下面是我在一個項目中的應用:
描述:域名dev.uc.everychina.com 要獲得域名 dev.members.everychina.com下的數據
dev.members.everychina.com的服務器端代碼:
class JsController extends CController { public function actionIndex() {$callback = isset($_GET['callback']) ? $_GET['callback'] : '';$result = array();$userinfo = Intf_Client_Uc_User::instance()->getLoginUser();$cid = Everychina_Member::instance()->getCid($userinfo['uid']);//公司展廳評分$room_score = Ec_RoomScore::getInstance();//獲得展廳老的評分$update_status = true;//重新評分if(isset($_GET['action']) && $_GET['action']=='update') { $score_res = $room_score->getScoreInfo($cid); $room_score->updateScoreResult($cid,$score_res);$update_status = true; }$result['status'] = $update_status;$res = $room_score->getScoreResult($cid); $result['score'] = $room_score->getScoreResultView($res['score']);if ($callback) {$js = json_encode($result);echo "$callback( ($js) );";} }域名 dev.uc.everychina.com 下,前端調用(html)
<a id="update_score" href="#" onclick="ajaxUpdateScore();return false;">update score</a> <div id="member_score"></div>javascript
function ajaxUpdateScore(){if(document.getElementById("member_score_script")) {var score_script = document.getElementById("member_score_script"); document.body.removeChild(score_script); }var score_script = document.createElement("script");score_script.id = "member_score_script";score_script.src = 'http://dev.members.everychina.com/index.php?r=js/index&callback=show_score&t='+new Date().getTime();document.body.appendChild(score_script);}function show_score(json) { if(json.status == true) {var html = '<p>level:'+json.score.level+'</p>';html += '<p>msg:'+json.score.msg+'</p>';html += '<p>score:'+json.score.score+'</p>';$("#member_score").html(html); }}
轉載于:https://www.cnblogs.com/daxian2012/archive/2012/08/15/2640650.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的JSONP 跨域共享信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java多线程复习_Java多线程复习
- 下一篇: wps日期加减算天数_日期相减之后的天数