摘要:由于跨域的存在,使資源交互在不同域名間變的復雜和安全。對于跨域數據傳輸,當數據長度較小的長度內,是一種較好的解決方案。關于跨域可以參考跨域總結與解決辦法的端調用主要功能通過向服務器,調用相應接口,獲應數據根據獲取數據結果做出相應回調。
由于跨域的存在,使資源交互在不同域名間變的復雜和安全。對于跨域數據傳輸,當數據長度較小(get的長度內),jsonp是一種較好的解決方案。
分享一個自己在jsonp使用過程中的demo。
關于跨域可以參考:跨域總結與解決辦法
jsonp的js端調用主要功能:通過jsonp向服務器,調用相應接口,獲應數據;根據獲取數據結果做出相應回調。
/** * jsonp demo * 通過回調函數,進行獲取之后的事件加載 * * @author:cuihuan * @private */ _jsonpDemo:function(callback){ $.ajax({ url: "http://your_site_url", type: "GET", dataType: "JSONP", success: function (data) { if (data && data.status) { if (data.status == "0") { // failure solve ... } else if (data.status == 500) { // server error log _sendInternalLog(data.info); } else if (data.status == 1) { //success solve ... } // callback func (callback && typeof(callback) === "function" ) && callback(); } }, error: function () { _sendFailLog(); } }) }jsonp 服務器端 (php)
/** * 接口返回相應數據 * * status: 0 標示失敗,1標示成功,500發生錯誤 * return: jsonp */ public function actionGetJsonPInfo() { try { $data = getNeedData() if ($data["status"] == "success") { $res = array("status" => "1", "info" => $data["info"]); }else{ $res = array("status" => "0", "info" => "0"); } }catch (Exception $e){ $res = array("status" => "500", "info"=> $e); } // jsonp 通過get請求的返回數據形式 if (isset ($_GET["callback"])) { header("Content-Type: application/json"); echo $_GET["callback"]."(".json_encode($res).")"; } }總結
目前來說,數據量小的跨域傳輸,jsonp是一種很好的解決方案。
jsonp在data中可以自動識別,res.status,res.info等狀態位,比較方便。
php端的接受代碼最好不要采用 Access-Control-Allow-Origin:* 風險太大。
本人小站原文
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78237.html
摘要:在這里講解一下用原生如何實現。當然,前面也說過,你可以給定固定回調函數名最后我已經將和請求合并在一起了,下載鏈接原文鏈接原生實現如有問題,歡迎在下方留言 相信大多數前端開發者在需要與后端進行數據交互時,為了方便快捷,都會選擇JQuery中封裝的AJAX方法,但是有些時候,我們只需要JQuery的AJAX請求方法,而其他的功能用到的很少,這顯然是沒必要的。 其實,原生JavaScript...
摘要:,跨站腳本攻擊。實際發的請求就是,用于表示這是一個請求。,用于告知服務器根據這個參數獲取回調函數的名稱,通常約定就叫。,回調函數的名稱,也是前面參數的值,可省略,會自動生成。 本次課程主要圍繞 PHP 面試和筆試中經常會出現的一些知識點,但是面試官會在筆試題基礎上深入擴展,那么你知道如何更好的回答讓面試官滿意嗎?題目收集自騰訊,迅雷,美圖等公司的筆試面試題,以及本人面試經歷中印象中的知...
摘要:什么是跨域跨域,指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制。同源又是什么呢所謂同源是指,域名,協議,端口均相同。什么是就可以解決跨域問題。 什么是跨域? 跨域,指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制。 同源又是什么呢? 所謂同源是指,域名,協議,端口均相同。如:http://www.abc....
摘要:由兩部分組成回調函數和數據。回調函數是當響應到來時應該在頁面中調用的函數,回調函數的名字一般是在請求中指定的。下面是以個的例子回調函數的名字就是是通過動態的元素來使用的,使用時可以為屬性指定一個跨域。是為與其他傳遞消息的很相似。 圖像Ping技術 根據一個網頁可以從任何網頁中加載圖像而不用擔心使用跨域的原理, 我們可以動態的創建圖像, 使用他們的onload和onerror事件處理程序...
閱讀 3794·2023-04-25 16:32
閱讀 2194·2021-09-28 09:36
閱讀 2035·2021-09-06 15:02
閱讀 673·2021-09-02 15:21
閱讀 918·2019-08-30 15:56
閱讀 3513·2019-08-30 15:45
閱讀 1708·2019-08-30 13:09
閱讀 379·2019-08-29 16:05