• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    Ajax 跨域如何實現(xiàn)

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:51:54
    文檔

    Ajax 跨域如何實現(xiàn)

    Ajax 跨域如何實現(xiàn):ajax簡介 AJAX即Asynchronous Javascript And XML(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。 AJAX = 異步 JavaScript和XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)。 AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。 通過在后臺與服務(wù)器
    推薦度:
    導(dǎo)讀Ajax 跨域如何實現(xiàn):ajax簡介 AJAX即Asynchronous Javascript And XML(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。 AJAX = 異步 JavaScript和XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)。 AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。 通過在后臺與服務(wù)器

    ajax簡介

    AJAX即“Asynchronous Javascript And XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。

    AJAX = 異步 JavaScript和XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)。

    AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。

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

    傳統(tǒng)的網(wǎng)頁(不使用 AJAX)如果需要更新內(nèi)容,必須重載整個網(wǎng)頁頁面。

    下面步入正題

    前兩天xz問我知不知道ajax怎么實現(xiàn)跨域調(diào)用,因為沒聽過這個概念,所以也知道怎么實現(xiàn)。xz說ajax跨域調(diào)用有幾種方式,一種是iframe的方式,通過設(shè)置document.domain來實現(xiàn),一種則是通過設(shè)置jsonp來實現(xiàn)。這兩天查了一下資料,也寫了幾個demo,下面?zhèn)渫幌隆?/p>

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

    coolkissbh.com

    blog.coolkissbh.com

    coolkiss.com

    一 、ajax 跨域調(diào)用會有什么問題

    coolkissbh.com下頁面使用jquery的$.get調(diào)用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跨域?qū)崿F(xiàn)方法

    1、跨子域?qū)崿F(xiàn)ajax

    要求:實現(xiàn)coolkissbh.com的頁面 異步請求 blog.coolkissbh.com下的頁面

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

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

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

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

    處理返回的數(shù)據(jù):

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

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

    2,跨全域?qū)崿F(xiàn)ajax

    要求:實現(xiàn)coolkissbh.com的頁面異步請求coolkiss.com下的頁面

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

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

    CrossSite.aspx返回一個字符串,將返回的數(shù)據(jù)回傳給callback,執(zhí)行回調(diào)函數(shù),實現(xiàn)ajax,例如:

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

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

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

    jquery 1.2 后添加了對跨域ajax的調(diào)用,也就是$.getJSON 函數(shù)

    調(diào)用方法如下:

    下面是coolkissbh.com下的頁面

    //使用jsonp實現(xiàn)跨全域
    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)函數(shù)。

    以上所述是小編給大家介紹的Ajax 跨域如何實現(xiàn)的相關(guān)知識,希望對大家有所幫助!

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Ajax 跨域如何實現(xiàn)

    Ajax 跨域如何實現(xiàn):ajax簡介 AJAX即Asynchronous Javascript And XML(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。 AJAX = 異步 JavaScript和XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)。 AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。 通過在后臺與服務(wù)器
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 午夜福利麻豆国产精品| 久久夜色精品国产噜噜亚洲AV | 国产精品成人久久久久久久| 日韩精品极品视频在线观看免费| 久久久99精品成人片中文字幕| 91麻豆精品一二三区在线| 精品福利视频一区二区三区 | 国产高清在线精品一区二区三区| 1024国产欧美日韩精品| 日韩精品少妇无码受不了| 欧美黑人巨大videos精品| www亚洲欲色成人久久精品| 国产精品中文字幕在线观看| 国产色婷婷五月精品综合在线| 无码囯产精品一区二区免费| 中文无码久久精品| 午夜在线视频91精品 | 成人精品一区二区三区| 欧美国产亚洲精品高清不卡| 国产精品99久久99久久久| 日韩精品少妇无码受不了| 中文精品久久久久人妻不卡| 亚洲国产精品碰碰| 香港三级精品三级在线专区 | 国产精品福利区一区二区三区四区 | 久久精品国产亚洲av水果派| 无码国模国产在线无码精品国产自在久国产| 国产精品无码一区二区在线观一| 91久久精品国产成人久久| 日本一区二区三区精品中文字幕| 国产精品久久久久久久久| 国产精品久久久久久搜索| 国产精品久久久久久久久鸭| 国产精品大白天新婚身材| 国产福利91精品一区二区| 91精品国产综合久久精品| 国产精品91在线| 久久久久夜夜夜精品国产| 亚洲欧美日韩精品久久| 亚洲综合国产精品| 99国产精品国产免费观看|