AJAX及常用的兩種跨域方法

首先什么是AJAX?

?????????AJAX : Asynchronous JavaScript and XML(異步JavaScript和XML技術(shù))桂肌。

????????JavaScript:XMLHttpRequest(核心對象)轴或。

????????XML:可擴(kuò)展標(biāo)記語言仰禀,數(shù)據(jù)存儲與交換。

????????是在不重新加載(刷新)整個(gè)頁面的情況下饺蚊,與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的內(nèi)容。

? ? ? ? 優(yōu)缺點(diǎn):無刷新技術(shù)裕坊,提升用戶體驗(yàn)燕酷,減少網(wǎng)絡(luò)占用;不利于SEO優(yōu)化饵蒂。

步驟:

? ? ? ? 1. 創(chuàng)建核心對象

????????????????var xhr = new XMLHttpRequest();

? ? ? ? 2. 準(zhǔn)備建立連接

????????????????xhr.open(method, url, async);

????????????????method -- 請求方式:"GET"/"POST"

????????????????url -- 請求資源的URL

????????????????async -- 是否異步退盯,通常 true(異步)泻肯,如果設(shè)置為 false表示是同步

? ? ? ? ? 3. 發(fā)送請求

????????????????xhr.send();

? ? ? ? ? 4. 處理響應(yīng)

????????????????xhr.onreadystatechange = function(){}

????????????????xhr.readyState -- 就緒狀態(tài)碼

????????????????-- 表示 xhr 狀態(tài)信息,即請求到達(dá)哪個(gè)階段

????????????????-- 4 :請求處理完畢琉朽,響應(yīng)就緒

????????????????xhr.status -- HTTP 狀態(tài)碼

????????????????-- 200 :OK稚铣,請求成功

????????????????xhr.responseText -- 獲取響應(yīng)文本

就緒狀態(tài)碼:

????????0: 請求未初始化

????????1: 服務(wù)器連接已建立

????????2: 請求已接收

????????3: 請求處理中

????????4: 請求已完成榛泛,且響應(yīng)已就緒

常用HTTP:

? ??????1**——信息,服務(wù)器收到請求孤个,需要請求者繼續(xù)執(zhí)行操作

????????2**——成功沛简,操作被成功接收并處理

????????3**——重定向,需要進(jìn)一步的操作以完成請求

????????4**——客戶端錯(cuò)誤给郊,請求包含語法錯(cuò)誤或無法完成請求

? ? ? ? 5**——服務(wù)器錯(cuò)誤,服務(wù)器在處理請求的過程中發(fā)生了錯(cuò)誤


????????說跨域前需要先說說同源策略

同源策略:

????????瀏覽器安全策略淆九,保障非同源資源之間數(shù)據(jù)訪問的安全性炭庙。

????????默認(rèn)不允許非同源的資源直接訪問。

????????URL:協(xié)議://域名:端口/路徑名稱?查詢字符串#hash

????????同源:協(xié)議逾雄、域名、端口完全一致鸦泳,只要三個(gè)中有任何一個(gè)不一致永品,則是非同源

????????非同源資源間需要進(jìn)行訪問,則需要實(shí)現(xiàn)跨域。

跨域方法一:CORS跨域

? ? ? ? CORS跨域比較簡單硅则,只需要后端在PHP文件頭部加一個(gè)頭信息及:

? ??????????????header('Access-Control-Allow-Origin:*')堪置;

? ? ? ? *表示允許所有域名訪問,如果只是一個(gè)文件訪問則吧*換成指定域名乎芳。

? ??????可解決GET/POST跨域需求

跨域方法二:JSONP跨域

????????利用<script>在引入外部JS時(shí)不受同源策略限制的特性,同時(shí)包含JSON編碼數(shù)據(jù)的響應(yīng)體會自動解碼吭净,來實(shí)現(xiàn)跨域肴甸。JSONP處理的是GET請求方式的跨域

步驟:

? ??????后端:

????????????????有服務(wù)器端構(gòu)建一個(gè)字符串:字符串中的內(nèi)容是能夠在 JS 中執(zhí)行的函數(shù)調(diào)用的結(jié)構(gòu)

????????前端:

????????????????1. 創(chuàng)建 元素

????????????????2. 設(shè)置 src 屬性,傳遞 callback 參數(shù)指明全局回調(diào)函數(shù)的名稱

????????????????3. 添加到 body 中

????????????????4. 創(chuàng)建全局函數(shù)友扰,用于處理響應(yīng)數(shù)據(jù)

????????????????5. 刪除 元素

? ? ? ??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末村怪,一起剝皮案震驚了整個(gè)濱河市浮庐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌腊敲,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件懂昂,死亡現(xiàn)場離奇詭異凌彬,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)铲敛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門伐蒋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迁酸,“玉大人,你說我怎么就攤上這事奸鬓。” “怎么了宏多?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵伸但,是天一觀的道長砌烁。 經(jīng)常有香客問我催式,道長,這世上最難降的妖魔是什么荣月? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任哺窄,我火速辦了婚禮账锹,結(jié)果婚禮上坷襟,老公的妹妹穿的比我還像新娘。我一直安慰自己廓奕,他們只是感情好档叔,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著衙四,像睡著了一般传蹈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惦界,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天表锻,我揣著相機(jī)與錄音瞬逊,去河邊找鬼仪或。 笑死,一個(gè)胖子當(dāng)著我的面吹牛范删,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播旨巷,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼采呐,長吁一口氣:“原來是場噩夢啊……” “哼搁骑!你這毒婦竟也來了又固?” 一聲冷哼從身側(cè)響起仰冠,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤洋只,失蹤者是張志新(化名)和其女友劉穎裳涛,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舷礼,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妻献,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年团赁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熬丧。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡析蝴,死狀恐怖绿淋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情佑菩,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布殿漠,位于F島的核電站凸舵,受9級特大地震影響失尖,放射性物質(zhì)發(fā)生泄漏渐苏。R本人自食惡果不足惜琼富,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一鞠眉、第九天 我趴在偏房一處隱蔽的房頂上張望械蹋。 院中可真熱鬧羞芍,春花似錦、人聲如沸荷科。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜀涨。三九已至厚柳,卻和暖如春顶掉,著一層夾襖步出監(jiān)牢的瞬間挑胸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工茬贵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人老充。 一個(gè)月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓啡浊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親喘先。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • ??2005 年嗤放,Jesse James Garrett 發(fā)表了一篇在線文章,題為“Ajax: A new App...
    霜天曉閱讀 883評論 0 1
  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,173評論 0 7
  • ajax作為前端開發(fā)必需的基礎(chǔ)能力之一,你可能會使用它庄呈,但并不一定懂得其原理派阱,以及更深入的服務(wù)器通信相關(guān)的知識。在...
    蕭玄辭閱讀 812評論 0 0
  • 什么是跨域 跨域,是指瀏覽器不能執(zhí)行其他網(wǎng)站的腳本腺劣。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript實(shí)...
    HeroXin閱讀 831評論 0 4
  • 什么是跨域 跨域籍铁,是指瀏覽器不能執(zhí)行其他網(wǎng)站的腳本拒名。它是由瀏覽器的同源策略造成的芋酌,是瀏覽器對JavaScript實(shí)...
    Yaoxue9閱讀 1,286評論 0 6