ajax 、ajax的交互模型、如何解決跨域問題

(https://www.cnblogs.com/weilantiankong/p/4718145.html)

1、ajax是什么?

— AJAX全稱為“AsynchronousJavaScript and XML”(異步JavaScript和XML),是一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。

— 不是一種新技術(shù),是如下幾種技術(shù)的組合應(yīng)用:

  • 基于web標(biāo)準(zhǔn)(standards-basedpresentation)XHTML+CSS的表示;
  • 使用 DOM(DocumentObject Model)進(jìn)行動態(tài)顯示及交互;
  • 使用 XML 和 XSLT 進(jìn)行數(shù)據(jù)交換及相關(guān)操作;
  • 使用 XMLHttpRequest 進(jìn)行異步數(shù)據(jù)查詢、檢索;
  • 使用 JavaScript將所有的東西綁定在一起。

— Ajax本質(zhì)上是一個瀏覽器端的技術(shù)。

2、請描述ajax的交互模型。

image

瀏覽器的普通交互方式

image

瀏覽器的Ajax交互方式

image

以上摘自http://blog.csdn.net/chenmoquan/article/details/38560649

3、怎么解決跨域問題

在AJAX應(yīng)用環(huán)境中,由于安全的原因,瀏覽器不允許XMLHttpRequest組件請求跨域資源。在很多情況下,這個限制給我來帶來的諸多不 便。很多同行,研究了各種各樣的解決方案:

1. 通過修改document.domain和隱藏的IFrame來實現(xiàn)跨域請求。這種方案可能是最簡單的一種跨域請求的方案,但是它同樣是一種限制最大的方 案。首先,它只能實現(xiàn)在同一個頂級域名下的跨域請求;另外,當(dāng)在一個頁面中還包含有其它的IFrame時,可能還會產(chǎn)生安全性異常,拒絕訪問。

2.通過請求當(dāng)前域 的代理,由服務(wù)器 代理去訪問另一個域的資源。XMLHttpRequest通過請求本域內(nèi)的一個服務(wù)器資源 ,將要訪問的目標(biāo)資源提供給服務(wù)器,交由服務(wù)器 去代理訪問目標(biāo)資源。這種方案,可以實現(xiàn)完全的跨域訪問,但是開發(fā),請求過程的消費(fèi)會比較大。

3. 通過HTML中可以請求跨域資源的標(biāo)簽引用來達(dá)到目的,比如Image,Script,LINK這些標(biāo)簽。在這些標(biāo)簽中,Script無疑是最合適的。在 請求每一個腳本資源時,瀏覽器都會去解析并運(yùn)行腳本文件內(nèi)定義的函數(shù),或需要馬上執(zhí)行的JavaScript代碼,我們可以通過服務(wù)器返回一段腳本或 JSON對象,在瀏覽器解析執(zhí)行,從而達(dá)到跨域請求的目的。使用script標(biāo)簽來實現(xiàn)跨域請求,只能使用get方法請求服務(wù)器資源。

以上內(nèi)容摘自:利用 script標(biāo)簽實現(xiàn)的跨域名AJAX請求(ExtJS)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容