亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

實現Ajax跨域

2024-09-01 08:30:31
字體:
來源:轉載
供稿:網友

跨域問題是來源于JavaScript,那么你知道Ajax跨域請求如何實現嗎?相信這是很多小伙伴們都不知道的事情,那么接下來的內容中就讓大家去看看實現Ajax跨域的方法。

ajax簡介

AJAX即“Asynchronous Javascript And XML”(異步JavaScript和XML),是指一種創建交互式網頁應用的網頁開發技術。

AJAX = 異步 JavaScript和XML(標準通用標記語言的子集)。

AJAX 是一種用于創建快速動態網頁的技術。

通過在后臺與服務器進行少量數據交換,AJAX 可以使網頁實現異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。

傳統的網頁(不使用 AJAX)如果需要更新內容,必須重載整個網頁頁面。

下面步入正題

前兩天xz問我知不知道ajax怎么實現跨域調用,因為沒聽過這個概念,所以也知道怎么實現。xz說ajax跨域調用有幾種方式,一種是iframe的方式,通過設置document.domain來實現,一種則是通過設置jsonp來實現。這兩天查了一下資料,也寫了幾個demo,下面備忘一下。

我在本地建了三個站點,并設置了host文件模擬跨子域和跨全域

coolkissbh.com

blog.coolkissbh.com

coolkiss.com

一 、ajax 跨域調用會有什么問題

coolkissbh.com下頁面使用jquery的$.get調用blog.coolkissbh.com頁面

跨域請求,IE 7和8下報 access denied錯誤
IE 6.0 則彈出 this page is accessing information that is not under its control. this poses a security risk.do you want to continue?提示框

firefox 沒報錯,但是不會做出請求

二、ajax跨域實現方法

1、跨子域實現ajax

要求:實現coolkissbh.com的頁面 異步請求 blog.coolkissbh.com下的頁面

實現方法:借助iframe,通過設置iframe的src屬性,嵌入blog.coolkissbh.com下的一個頁面,比如AjaxProxy.aspx,然后由該頁面去請求Ajax

AjaxProxy請求完畢后,通過parent對象把返回的數據回傳給coolkissbh.com的主頁面。因此,真正的異步請求還是發生在blog.coolkissbh.com的域名下

注意:通過這種方法實現的跨子域ajax請求,需要在coolkissbh.com的請求頁面以及AjaxProxy.aspx頁面中設置同樣的域名,也就是
document.domain = "coolkissbh.com";

注意:關于設置domain的問題,如果是跨全域,使用上面方法時候,firefox下會提示
Illegal document.domain value" code: "1009的錯誤,因此跨全域只能使用第二種方法

處理返回的數據:

AjaxProxy.aspx將ajax返回的數據保存到一個全局變量中,coolkissbh.com通過setInterval定時去判斷iframe的頁面是否加載完成,如果加載完成,則獲取AjaxProxy.aspx的全局變量值。然后再做其它處理。

這里有個問題:我原來是打算在AjaxProxy.aspx的ajax請求完成后,調用parent的方法,同時將數據返回,但是在IE下,點擊第一次時候就會出現“permission denied”的錯誤,再次點擊就正常了。在firefox下就沒有問題,不知道是什么原因。

2,跨全域實現ajax

要求:實現coolkissbh.com的頁面異步請求coolkiss.com下的頁面

實現方法:上面提到跨全域不能通過設置domain方法來實現。但是可以使用script標簽來實現,通過設置script標簽的src屬性為coolkiss.com域名下的一個頁面,同時將callback函數傳到該頁面中,例如:

RequestAjax_CrossSite = function() {var obj = $("#crossSitePage");obj.attr("src", "http://coolkiss.com/CrossSite.aspx?callback=handleData3");}handleData3 = function(data) {$("#ResponseData").html(data);}

CrossSite.aspx返回一個字符串,將返回的數據回傳給callback,執行回調函數,實現ajax,例如:

Response.Clear();
Response.Write(string.Format("{0}('{1}')", Request["callback"], responseData));
Response.End();

注意:這種方法同樣可以用于處理跨子域ajax的問題,但是就無法像jquery那樣獲取ajax調用的各個狀態

3,通過jquery的jsonp實現跨域ajax,其實原理跟第二種方法是一樣的,支持跨全域和子域

jquery 1.2 后添加了對跨域ajax的調用,也就是$.getJSON 函數

調用方法如下:

下面是coolkissbh.com下的頁面

//使用jsonp實現跨全域RequestAjax_JSONP = function() {var obj = $("#crossSitePage");$.getJSON("http://coolkiss.com/CrossSite.aspx?callback=?&t=" + Math.random(), function(data) {//alert(data);$("#ResponseData").html(data.content);});}

coolkiss.com后臺處理代碼,將一個json對象傳遞給callback:

public partial class CrossSite : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){LoadData_JSONP();}}protected void LoadData_JSONP(){string responseData = "{content:/"hello world from coolkiss.com/"}";if (Request["callback"] != null && !string.IsNullOrEmpty(Request["callback"])){Response.Clear();Response.Write(string.Format("{0}({1})", Request["callback"], responseData));Response.End();}}}

callback=? 其中?會自動替換為function(data)函數。

看完以上內容后你知道如何實現Ajax跨域了嗎?本文詳細介紹了實現Ajax跨域的方法,希望你們能從中學到一些東西,為你能快速上手AJAX助上一臂之力。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人中文字幕| 91视频免费网站| 亚洲成人久久一区| 欧美精品videosex极品1| 日本国产欧美一区二区三区| 久久6精品影院| 成人精品在线观看| 国产精品视频公开费视频| 国产精品高潮呻吟久久av黑人| 亚洲综合在线中文字幕| 欧美成年人网站| 亚洲福利在线视频| 日韩av免费在线看| 国产精品久久激情| 成人综合网网址| 亚洲欧美日韩一区二区在线| 中文字幕一精品亚洲无线一区| 欧美在线精品免播放器视频| 精品日本美女福利在线观看| 日韩av电影中文字幕| 黄色91在线观看| 欧美激情一区二区三级高清视频| 日韩激情av在线免费观看| 色综久久综合桃花网| 日韩网站免费观看高清| 欧美日韩国产成人高清视频| www亚洲欧美| 91精品久久久久久久久久久久久久| 不卡在线观看电视剧完整版| 午夜精品视频网站| 亚洲精品久久久久久久久久久久久| 国产成人免费av| 日韩av中文字幕在线| 国产精品999999| 欧美日韩国产中文精品字幕自在自线| 欧美日韩xxxxx| 久久久久在线观看| 久久久免费在线观看| 成人动漫网站在线观看| 亚洲国产成人精品久久| 这里只有精品视频在线| 久久艹在线视频| 国产精品久久中文| 国产精品欧美一区二区三区奶水| 成人精品久久av网站| 国产va免费精品高清在线观看| 亚洲美女免费精品视频在线观看| 91成人福利在线| 欧美日韩免费看| 亚洲精品小视频在线观看| 欧美日韩国产中文精品字幕自在自线| 日韩电影中文 亚洲精品乱码| 成人免费在线视频网站| 亚洲一区二区日本| 欧美在线视频在线播放完整版免费观看| 日韩理论片久久| 日韩的一区二区| 日本aⅴ大伊香蕉精品视频| 成人精品在线观看| 国产精品aaa| 亚洲欧美在线一区二区| 日韩欧美国产成人| 亚洲欧美中文字幕在线一区| 91麻豆国产精品| 欧美成人性生活| 亚洲尤物视频网| 亚洲在线一区二区| 亚洲性日韩精品一区二区| 亚洲精品美女久久| 久久久久久中文| 日韩av在线天堂网| 欧美韩日一区二区| 91超碰中文字幕久久精品| 亚洲第一色在线| 992tv成人免费影院| 欧美福利在线观看| 亚洲深夜福利在线| 中文字幕无线精品亚洲乱码一区| 久久99热这里只有精品国产| 日韩欧美在线视频日韩欧美在线视频| 精品国产一区二区三区久久狼5月| 91精品视频大全| 欧美国产日韩一区二区在线观看| 亚洲图中文字幕| 亚洲欧美日韩中文在线| 6080yy精品一区二区三区| 精品亚洲aⅴ在线观看| 亚洲欧美日韩直播| 91在线视频一区| 欧美性猛交99久久久久99按摩| 日韩视频在线免费| 国产精品亚洲网站| 日本在线观看天堂男亚洲| 国产精品视频区| 91亚洲午夜在线| 日韩美女视频免费看| 欧美亚洲在线播放| 人人做人人澡人人爽欧美| 红桃视频成人在线观看| 亚洲电影免费观看高清完整版| 国产精品99久久99久久久二8| 菠萝蜜影院一区二区免费| 美女av一区二区| 668精品在线视频| 91亚洲精品久久久久久久久久久久| 九九热精品视频| 亚洲影视九九影院在线观看| 国产亚洲人成a一在线v站| 亚洲xxxx18| 91色视频在线观看| 欧美一级大片在线观看| 国产精品网站视频| 国产精品久久久久久久久免费| 欧美一级免费视频| 91精品国产乱码久久久久久蜜臀| 色噜噜国产精品视频一区二区| 欧美亚洲视频在线观看| 欧美大全免费观看电视剧大泉洋| 欧美午夜激情在线| 久久人体大胆视频| 亚洲自拍欧美色图| 夜夜嗨av色综合久久久综合网| 免费97视频在线精品国自产拍| 日韩hd视频在线观看| 欧美高清视频一区二区| 色综合久综合久久综合久鬼88| 国内免费精品永久在线视频| 欧美一乱一性一交一视频| 97视频在线观看视频免费视频| 欧美日韩另类视频| 久久网福利资源网站| 国产欧美日韩亚洲精品| 91av在线免费观看| 在线看国产精品| 欧美激情一二区| 精品国产一区二区三区在线观看| 色偷偷综合社区| 日韩在线精品一区| 国产欧亚日韩视频| 国产精品日韩一区| 5566日本婷婷色中文字幕97| 国产mv免费观看入口亚洲| 日韩精品中文字幕在线观看| 精品国产自在精品国产浪潮| 性欧美长视频免费观看不卡| 中文字幕日韩欧美在线视频| 日韩欧美中文在线| 久久久精品2019中文字幕神马| 疯狂蹂躏欧美一区二区精品| 欧美日韩国产中文字幕| 国产精品影片在线观看| 国外成人性视频| 亚洲 日韩 国产第一| 91性高湖久久久久久久久_久久99| 尤物九九久久国产精品的特点| 久久久久久中文字幕| 日韩亚洲综合在线| 国产999精品久久久影片官网| 91免费在线视频| 国产精品极品在线| 国产激情综合五月久久| 国产69精品久久久久久| 亚洲成人精品久久久| 97视频免费在线观看|