• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答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
    問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
    當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

    ajax跨域訪問(wèn)遇到的問(wèn)題及解決方案

    來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:56:13
    文檔

    ajax跨域訪問(wèn)遇到的問(wèn)題及解決方案

    ajax跨域訪問(wèn)遇到的問(wèn)題及解決方案:Ajax請(qǐng)求一個(gè)目標(biāo)地址為非本域(協(xié)議、域名、端口任意一個(gè)不同)的web資源,并根據(jù)響應(yīng)獲得外部應(yīng)用數(shù)據(jù)。比如我們用Ajax訪問(wèn)城市天氣預(yù)報(bào)、IP地址等公共服務(wù)接口時(shí),就涉及跨域了。我們請(qǐng)求一個(gè)外部服務(wù)時(shí),瀏覽器會(huì)基于安全問(wèn)題拒絕授權(quán)訪問(wèn)。 而scri
    推薦度:
    導(dǎo)讀ajax跨域訪問(wèn)遇到的問(wèn)題及解決方案:Ajax請(qǐng)求一個(gè)目標(biāo)地址為非本域(協(xié)議、域名、端口任意一個(gè)不同)的web資源,并根據(jù)響應(yīng)獲得外部應(yīng)用數(shù)據(jù)。比如我們用Ajax訪問(wèn)城市天氣預(yù)報(bào)、IP地址等公共服務(wù)接口時(shí),就涉及跨域了。我們請(qǐng)求一個(gè)外部服務(wù)時(shí),瀏覽器會(huì)基于安全問(wèn)題拒絕授權(quán)訪問(wèn)。 而scri

    Ajax請(qǐng)求一個(gè)目標(biāo)地址為非本域(協(xié)議、域名、端口任意一個(gè)不同)的web資源,并根據(jù)響應(yīng)獲得外部應(yīng)用數(shù)據(jù)。比如我們用Ajax訪問(wèn)城市天氣預(yù)報(bào)、IP地址等公共服務(wù)接口時(shí),就涉及跨域了。我們請(qǐng)求一個(gè)外部服務(wù)時(shí),瀏覽器會(huì)基于安全問(wèn)題拒絕授權(quán)訪問(wèn)。

    而script、script、iframe標(biāo)簽的src屬性就不存在跨域的問(wèn)題,所以Ajax跨域就是利用這一點(diǎn)以及js對(duì)JSON的支持,外部服務(wù)只要給Ajax的請(qǐng)求響應(yīng)一段JS代碼或JSON數(shù)據(jù),就能被Ajax獲取到。

    由于安全方面的原因, 客戶端js使用xmlhttprequest只能用來(lái)向來(lái)源網(wǎng)站發(fā)送請(qǐng)求,比如在www.readlog.cn下去請(qǐng)求test.readlog.cn的數(shù)據(jù),都是不行的。不過(guò),解決辦法倒是不少。這里整理一下。

    解決方式1 web代理的方式 (on Server A)

    由該頁(yè)面代替用戶頁(yè)面完成交互,從而返回合適的結(jié)果。此方案可以解決現(xiàn)階段所能夠想到的多數(shù)跨域訪問(wèn)問(wèn)題,但要求A網(wǎng)站提供Web代理的支持,因此A網(wǎng)站與B網(wǎng)站之間必須是緊密協(xié)作的,且每次交互過(guò)程,A網(wǎng)站的服務(wù)器負(fù)擔(dān)增加,且無(wú)法代用戶保存session狀態(tài)。

    解決方式2. on-Demand方式 (on Server A)

    MYMSN的門戶就用的這種方式,不過(guò) MYMSN中不涉及跨域訪問(wèn)問(wèn)題。在頁(yè)面內(nèi)動(dòng)態(tài)生成新的

    解決方式3. iframe方式 (on Server A)

    查看過(guò)醒來(lái)在JavaEye上的一篇關(guān)于跨域訪問(wèn)的帖子,他提到自己已經(jīng)用iframe的方式解決了跨域訪問(wèn)問(wèn)題。數(shù)據(jù)提交跟獲取,采用iframe這種方式的確可以了,但由于父窗口與子窗口之間不能交互(跨域訪問(wèn)的情況下,這種交互被拒絕),因此無(wú)法完成對(duì)父窗口效果的影響。

    在頁(yè)面內(nèi)嵌或動(dòng)態(tài)生成指向別的網(wǎng)站的IFRAME,然后這2個(gè)網(wǎng)頁(yè)間可以通過(guò)改變對(duì)方的anchor hash fragment來(lái)傳輸消息。改變一個(gè)網(wǎng)頁(yè)的anchor hash fragment并不會(huì)使瀏覽器重新裝載網(wǎng)頁(yè),所以一個(gè)網(wǎng)頁(yè)的狀態(tài)得以保持,而網(wǎng)頁(yè)本身則可以通過(guò)一個(gè)計(jì)時(shí)器(timer)來(lái)察覺(jué)自己anchor hash的變化,從而相應(yīng)改變自己的狀態(tài)。

    解決方式4. 用戶本地轉(zhuǎn)儲(chǔ)方式 (local)

    IE本身依附于windows平臺(tái)的特性為我們提供了一種基于iframe,利用內(nèi)存來(lái)“繞行”的方案,即兩個(gè)window之間可以在客戶端通過(guò)windows剪貼板的方式進(jìn)行數(shù)據(jù)傳輸,只需要在接受數(shù)據(jù)的一方設(shè)置Interval進(jìn)行輪詢,獲得結(jié)果后清除Interval即可。FF的平臺(tái)獨(dú)立性決定了它不支持剪貼板這種方式,而以往版本的FF中存在的插件漏洞又被fixed了,所以FF無(wú)法通過(guò)內(nèi)存來(lái)完成暗渡陳倉(cāng)。而由于文件操作FF 也沒(méi)有提供支持(無(wú)法通過(guò)Cookie跨域完成數(shù)據(jù)傳遞),致使這種技巧性的方式只能在IE中使用。

    解決方式5: (其實(shí)還是在服務(wù)端A用iframe解決了與服務(wù)器B通信的問(wèn)題)

    要解決的問(wèn)題:發(fā)生在用戶提交網(wǎng)頁(yè) URL (還包括 Tag, Notes 等)給bookmark 服務(wù)器時(shí)。

    關(guān)于 URL 的提交至少可以有三種方式:

    1. 登陸 Bookmark 服務(wù)器的提交頁(yè)面,將要收藏的 URL 通過(guò)該頁(yè)面提交給服務(wù)器。
    2. 安裝瀏覽器插件,通過(guò)插件將 URL 提交給服務(wù)器。
    3. 從 Bookmark 服務(wù)器動(dòng)態(tài)加載 javascript 小工具到當(dāng)前頁(yè)面,通過(guò)它來(lái)完成提交工作。

    第一種方式開發(fā)起來(lái)最簡(jiǎn)單,但對(duì)用戶來(lái)講比較麻煩,每次都需要先登陸 Bookmark 服務(wù)器才能完成提交;第二種方式我并不熟悉插件開發(fā),而且用戶也不喜歡太多的插件堆滿自己的瀏覽器;第三種方式開發(fā)難度小,又避免了每次登陸服務(wù)器的麻煩,所以最終采用它。第三種方式中動(dòng)態(tài)加載的 javascript 小工具除了需要生成 UI 供用戶填寫信息( URL , tag , notes 等),當(dāng)用戶點(diǎn)擊提交的時(shí)候,還要完成與服務(wù)器通信的功能。

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

    文檔

    ajax跨域訪問(wèn)遇到的問(wèn)題及解決方案

    ajax跨域訪問(wèn)遇到的問(wèn)題及解決方案:Ajax請(qǐng)求一個(gè)目標(biāo)地址為非本域(協(xié)議、域名、端口任意一個(gè)不同)的web資源,并根據(jù)響應(yīng)獲得外部應(yīng)用數(shù)據(jù)。比如我們用Ajax訪問(wèn)城市天氣預(yù)報(bào)、IP地址等公共服務(wù)接口時(shí),就涉及跨域了。我們請(qǐng)求一個(gè)外部服務(wù)時(shí),瀏覽器會(huì)基于安全問(wèn)題拒絕授權(quán)訪問(wèn)。 而scri
    推薦度:
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲色精品aⅴ一区区三区| 精品一区二区三区无码免费视频 | 国产成人亚洲精品| 亚洲婷婷国产精品电影人久久| 一区二区三区四区精品视频| 久久棈精品久久久久久噜噜| 无码国内精品久久人妻麻豆按摩| 国产精品成人免费观看 | 久久91综合国产91久久精品| 日韩av无码久久精品免费| 亚洲国产精品专区在线观看| 精品无码国产自产拍在线观看蜜 | 中文字幕无码精品亚洲资源网久久| 国产精品美女免费视频观看| 久久精品草草草| 国产精品国产三级国产专播| 国语自产少妇精品视频| 无码人妻精品一区二区三区在线| 午夜精品久久久内射近拍高清| 精品久久久久中文字幕一区| 国产成人精品大尺度在线观看| 久久99国产精品久久| 国内精品91最新在线观看| 999精品视频| 国产精品久久精品| 国产午夜精品一区理论片| 久久精品国产亚洲沈樵| 久久99精品国产99久久| 四虎精品8848ys一区二区| 国产VA免费精品高清在线| 国产精品内射视频免费| 国产乱子伦精品免费视频| 国产综合免费精品久久久| 精品无人区无码乱码大片国产| 久久精品成人免费国产片小草| 毛片a精品**国产| 亚洲国产精品无码久久青草| 亚洲精品乱码久久久久久久久久久久 | 国产精品久久久久乳精品爆| 国产欧美精品区一区二区三区| 久99久无码精品视频免费播放|