亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 使用HTML5中postMessage知識點解決Ajax中POST跨域問題

使用HTML5中postMessage知識點解決Ajax中POST跨域問題

熱門標簽:老虎郵局地圖標注點 目標三維地圖標注 百靈鳥 外呼系統獲取客戶手機號 科智聯智能電銷機器人 襄陽外呼系統接口 上海浦東百度地圖標注中心注冊 徐州電銷卡外呼系統供應商 青海醫療智能外呼系統怎么樣

由于同源策略的限制,Javascript存在跨域通信的問題,典型的跨域問題有iframe與父級的通信等。常規的幾種解決方法:

(1) document.domain+iframe; (2) 動態創建script; (3) iframe+location.hash; (4) flash。

postMessage是HTML5為解決js跨域問題而引入的新的API,允許多個iframe/window跨域通信。

HTML5中提供了在網頁文檔之間相互接收與發送信息的功能。使用這個功能,只要獲取到網頁所在窗口對象的實例,不僅僅同源(域+端口號)的web網頁之間可以互相通信,甚至可以實現跨域通信。

瀏覽器支持程度:IE8+,firefox4+,chrome8+  opera10+

1. 首先,要想接收從其他的窗口發過來的消息,就必須對窗口對象的message事件進行監聽,如下代碼:

復制代碼 代碼如下:

window.addEventListener(“message”, function(){},false);

2. 其次,需要使用window對象的postMessage方法向其他窗口發送消息,該方法定義如下所示:

復制代碼 代碼如下:

otherWindow.postMessage(message, targetOrigin);

該方法使用2個參數,第一個參數為所發送的消息文本,但也可以是任何javascript對象,第二個參數是接收消息的對象窗口的url地址(比如:http:127.0.0.1:8080/) , 但是我們也可以在url地址字符串中使用通配符”*”, 指定全部的域下,但是我們還是建議使用特定的域名下,otherWindow為要發送窗口對象的引用。

Demo演示:

假如現在我在hosts文件下 ,綁定2 個域名如下:

127.0.0.1       abc.example.com
127.0.0.1        longen.example.com

現在假如在abc.example.com域下有一個abc.html頁面,在longen.example.com域下有def.html頁面,現在我是希望這2個不同域名下的頁面能互相通信,abc.html代碼如下:

form> 
   p> 
    label for="message" style="color:red;font-size:24px;">給iframe子窗口發一個信息:/label> 
    input type="text" name="message" value="send" id="message" /> 
    input type="submit" value="submit" id="submit"/> 
   /p> 
/form> 
h4>目標iframe傳來的信息:/h4> 
p id="test">暫無信息/p> 
 iframe id="iframe" 
  src="http://longen.example.com/webSocket/def.html" style="display:none">/iframe>

JS代碼如下:

var win = document.getElementById("iframe").contentWindow;
document.getElementById("submit").onclick = function(e){
  e.preventDefault();
  win.postMessage(document.getElementById("message").value,"http://longen.example.com"); 
} 
window.addEventListener("message",function(e){
   e.preventDefault();
   document.getElementById("test").innerHTML = "從" + e.origin + "那里傳過來的消息:\n" + e.data;
},false);

Def.html代碼如下:

HTML代碼:

form> 
   p> 
    label for="message">給父窗口abc.html發個信息:/label> 
    input type="text" name="message" value="send" id="message" /> 
    input type="submit" /> 
   /p> 
 /form> 
 p id="test2">暫無信息。/p>

JS代碼如下:

var parentwin = window.parent; 
window.addEventListener("message",function(e){
    document.getElementById("test2").innerHTML = "從父窗口傳來的域" +e.origin + ",和內容數據:" + e.data; 
    parentwin.postMessage('HI!你給我發了"span>'+e.data+'"/span>。',"http://abc.example.com");
},false);

當我點擊abc.html頁面后,可以看到效果如下,從def.html返回內容了。如下:

我們需要知道如下幾條信息:

通過對window對象的message事件進行監聽,可以接收消息。
通過訪問message事件的origin屬性,可以獲取消息的發送源。
通過訪問message事件的data屬性,可以取得消息內容。
使用postMessage方法發送消息。
通過訪問message事件的source屬性,可以獲取消息發送源的窗口對象(準確的說,應該是窗口的代理對象)。
有了上面的基本知識點,我們可以延伸為實現ajax POST跨域的問題。

二:使用postMessage 知識點解決 ajax中POST跨域問題。

原理:原理也很簡單,假如我們的域名abc.example.com下的abc.html頁面需要發ajax請求(跨域,域名為longen.example.com)下,那么我們還是先跨頁面文檔的形式,和上面一樣,我們可以現在longen.example.com下 建立一個頁面,比如叫def.html. 那么我們現在還是在 abc.html 頁面嵌入一個隱藏域iframe src路徑指向longen.example.com域下def,html頁面。過程還是和跨文檔類似,只是現在在def.html頁面中 在window.onmessage 事件內寫ajax請求即可,如下代碼:

abc.example.com下的abc.html頁面如下:

html代碼和上面一樣,下面是JS代碼:

var win = document.getElementById("iframe").contentWindow;
document.getElementById("submit").onclick = function(e){
   e.preventDefault();
   win.postMessage(document.getElementById("message").value,"http://longen.example.com/"); 
} 
window.addEventListener("message",function(e){
  e.preventDefault();
  alert(typeof e.data)
  var json = JSON.parse(e.data);
   console.log(json);
  alert(json.url)
},false);

def.html代碼如下:

JS代碼如下:

//獲取跨域數據 
window.onmessage = function(e){ 
   $.ajax({
     url: 'http://longen.example.com/webSocket/test.php',
     type:'POST',
     dataType:'text',
     //data: {msg:e.data},
     success: function(res) {
        var parentwin = window.parent; 
        parentwin.postMessage(res,"http://abc.example.com");//跨域發送數據 
     }
   });
 };

test.php代碼如下:

?php 
  $data=array( 
   url =>1,
   name =>'2',
   'xx-xx'=>"xx"
 );
 echo json_encode($data);
?>

如上實現方式 就可以實現ajax post跨域了。

以上內容是關于使用HTML5中postMessage知識點解決Ajax中POST跨域問題的相關介紹,希望大家喜歡。

您可能感興趣的文章:
  • JQuery Ajax 跨域訪問的解決方案
  • 在Ajax中使用Flash實現跨域數據讀取的實現方法
  • 跨域請求之jQuery的ajax jsonp的使用解惑
  • 利用iframe實現ajax跨域通信的實現原理(圖解)
  • JQuery的Ajax跨域請求原理概述及實例
  • 完美解決AJAX跨域問題
  • 用iframe設置代理解決ajax跨域請求問題
  • jquery的ajax和getJson跨域獲取json數據的實現方法
  • jquery跨域請求示例分享(jquery發送ajax請求)
  • JavaScript使用HTML5的window.postMessage實現跨域通信例子
  • ajax跨域請求js拒絕訪問的解決方法
  • IE9版本以下ajax 跨域問題可行解決方法
  • VC中SendMessage和PostMessage的區別
  • VC自定義消息響應函數postmessage用法示例

標簽:商洛 紅河 股票 咸寧 荊州 揭陽 佛山 辛集

巨人網絡通訊聲明:本文標題《使用HTML5中postMessage知識點解決Ajax中POST跨域問題》,本文關鍵詞  使用,HTML5,中,postMessage,知識點,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用HTML5中postMessage知識點解決Ajax中POST跨域問題》相關的同類信息!
  • 本頁收集關于使用HTML5中postMessage知識點解決Ajax中POST跨域問題的相關信息資訊供網民參考!
  • 推薦文章
    欧美爱爱动态| 成人高清视频在线观看| 国产网站麻豆精品视频| 欧美激情伊人| 欧美1卡一卡二卡三新区| 91麻豆精品国产高清在线| 国产伦精品一区二区三区无广告| 精品国产一区二区三区国产馆| 国产麻豆精品高清在线播放| 午夜精品国产自在现线拍| 国产网站免费视频| 尤物视频网站在线| 二级片在线观看| 一a一级片| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 你懂的日韩| 99色视频| 九九国产| 免费国产在线观看| 欧美一区二区三区在线观看| 日本乱中文字幕系列| 国产视频一区在线| 国产成人啪精品| 人人干人人插| 天天做人人爱夜夜爽2020| 日韩av东京社区男人的天堂| 国产伦精品一区二区三区在线观看 | 麻豆系列 在线视频| 美女免费精品视频在线观看| 中文字幕97| 欧美激情一区二区三区视频 | 精品在线观看国产| 国产不卡福利| 国产成a人片在线观看视频| 黄视频网站在线看| 尤物视频网站在线| 黄视频网站在线看| 高清一级毛片一本到免费观看| 成人免费观看男女羞羞视频| 91麻豆精品国产自产在线| 日日日夜夜操| 精品国产亚一区二区三区| 成人免费观看网欧美片| 91麻豆国产| 黄色免费三级| 韩国三级一区| 日日夜夜婷婷| 国产麻豆精品| 国产视频一区二区在线观看| 久久精品免视看国产明星| 国产精品1024在线永久免费 | 可以免费看毛片的网站| 麻豆污视频| 久久99这里只有精品国产| 久久成人性色生活片| 国产精品免费久久| 香蕉视频久久| 色综合久久手机在线| 日韩专区亚洲综合久久| 99色视频在线观看| 国产网站免费视频| 国产麻豆精品免费视频| 欧美a级成人淫片免费看| 欧美一区二区三区在线观看| 色综合久久手机在线| 精品视频一区二区| 欧美爱爱动态| 欧美激情一区二区三区在线| 欧美a级片视频| 国产伦精品一区二区三区无广告| 欧美激情一区二区三区视频 | 国产不卡精品一区二区三区| 一级女性全黄生活片免费| 精品国产一区二区三区国产馆| 亚洲精品中文字幕久久久久久| 国产91丝袜在线播放0| 成人免费网站久久久| 国产韩国精品一区二区三区| 天天色成人网| 中文字幕97| 青青久热| 久久久久久久久综合影视网| 亚洲精品影院久久久久久| 色综合久久天天综线观看| 日韩一级黄色| 国产美女在线一区二区三区| 韩国毛片| 尤物视频网站在线| 亚飞与亚基在线观看| 亚欧成人毛片一区二区三区四区| 成人高清免费| 日韩一级精品视频在线观看| 国产精品免费久久| 日韩中文字幕一区| 久草免费在线观看| 黄视频网站免费看| 成人高清免费| 四虎影视精品永久免费网站| 精品国产一区二区三区久| 九九精品在线播放| 99热热久久| 久久国产精品永久免费网站| 国产不卡在线播放| 麻豆污视频| 精品国产一区二区三区国产馆| 亚洲 激情| 黄色短视屏| 亚洲精品久久久中文字| 中文字幕一区二区三区精彩视频| 日本伦理片网站| 久久久久久久男人的天堂| 九九久久99| 九九久久国产精品大片| 国产美女在线一区二区三区| 中文字幕97| 午夜欧美福利| 亚洲第一色在线| 成人免费观看网欧美片| 尤物视频网站在线| 99色视频在线观看| 午夜欧美福利| 日韩免费在线| 日日夜夜婷婷| 日本伦理片网站| 色综合久久天天综合观看| 成人a大片高清在线观看| 九九精品在线播放| 精品久久久久久影院免费| 黄视频网站在线看| 亚飞与亚基在线观看| 91麻豆精品国产自产在线| 精品视频一区二区| 亚洲天堂免费| 国产麻豆精品高清在线播放| 欧美激情在线精品video| 国产极品白嫩美女在线观看看| 青青久久精品| 一本高清在线| 国产一区二区精品| 国产不卡福利| 国产成人女人在线视频观看| 国产亚洲精品成人a在线| 一a一级片| 欧美a级片视频| 999久久狠狠免费精品| 青草国产在线观看| 香蕉视频久久| 精品在线免费播放| 成人免费观看男女羞羞视频| 成人高清视频在线观看| 欧美激情一区二区三区在线| 亚洲第一页乱| 久久精品店| 天天做人人爱夜夜爽2020| 精品国产亚洲人成在线| 日韩中文字幕在线亚洲一区| 99久久精品国产麻豆| 亚洲女人国产香蕉久久精品| 国产网站麻豆精品视频| 黄视频网站在线看| 国产伦理精品| 精品视频在线观看免费 | 精品国产亚一区二区三区| 国产麻豆精品高清在线播放| 国产伦精品一区二区三区在线观看 | 一级女性大黄生活片免费| 日韩男人天堂| 欧美大片aaaa一级毛片| 91麻豆tv| 精品国产一区二区三区免费| 亚洲天堂免费| 久草免费在线观看| 精品在线观看国产| 国产网站麻豆精品视频| 成人在激情在线视频| 韩国三级视频网站| 99久久精品国产片| a级毛片免费观看网站| 韩国三级一区| 黄色免费三级| 日韩专区亚洲综合久久| 久久久成人网| 国产原创视频在线| 日日夜夜婷婷| 亚洲wwwwww| 日韩在线观看视频黄| 91麻豆国产| 国产成人精品综合久久久| 二级特黄绝大片免费视频大片| 精品在线免费播放| 青青久热| 香蕉视频亚洲一级| 青草国产在线观看| 黄色免费三级| 日本乱中文字幕系列| 精品在线免费播放| 欧美激情一区二区三区视频 | 二级片在线观看| 精品国产一区二区三区免费| 国产欧美精品|