Ajax 請(qǐng)求和跨域

跨域的幾種方式:

cors方式

cross-orign-resource-shareing(跨域)
參考:http://www.ruanyifeng.com/blog/2016/04/cors.html

分為簡單請(qǐng)求和非簡單請(qǐng)求。
非簡單請(qǐng)求會(huì)發(fā)送preflight(預(yù)請(qǐng)求)

cors跨域方式是瀏覽器自己帶的。
主要控制方式是在服務(wù)器端,同時(shí)需要瀏覽器的部分配合。

瀏覽器端主要的方法:
Access-Control-Request-Origin(Origin)
Access-Control-Request-Method
Access-Control-Request-Headers
帶憑據(jù)的請(qǐng)求
withCreditials:

服務(wù)器主要的方法:
Access-Control-Allow-Origin:
Access-Control-Allow-Methods:
Access-Control-Alllow-Headers:
Access-Control-Max-Age:
帶憑據(jù)的請(qǐng)求
Access-Control-Allow-Creditials:

JSONP

參考:https://segmentfault.com/a/1190000015597029
后臺(tái)服務(wù)相當(dāng)于中轉(zhuǎn)站,在前端的一個(gè)script標(biāo)簽里創(chuàng)建另一個(gè)script標(biāo)簽,并指定新的script標(biāo)簽的src,把方法和參數(shù)都從url中傳給后臺(tái)。
后臺(tái)得到url中的參數(shù)(包括方法和方法參數(shù)),返回到前端,作為新的script的內(nèi)容執(zhí)行帶參函數(shù)。

缺陷:
1.只能用get方法;
2.不安全:從其它域中引用代碼,一定要保證安全,一旦出現(xiàn)安全問題,幾乎要放棄使用;
3.不能判斷jsonp是否請(qǐng)求失敗。script標(biāo)簽的onerror事件瀏覽器支持性不是很好。

iframe跨域

1. 空iframe+form表單 v

2. iframe + document.domain v

3. iframe + window.name v

4. iframe + location.hash

5. iframe + postMessage v

nginx

知識(shí)補(bǔ)充

和跨域相關(guān)的一個(gè)設(shè)計(jì)模式是代理模式

概念:由于一個(gè)對(duì)象不能直接訪問另一個(gè)變量,所以要通過一個(gè)中間變量去訪問另一個(gè)變量。
JSONP代理模式:被代理者是要請(qǐng)求的html,請(qǐng)求的url返回?cái)?shù)據(jù)的那個(gè)域?qū)儆诖碛?,代理域和被代理域在同一個(gè)域名下,代理域指的是動(dòng)態(tài)的script標(biāo)簽。請(qǐng)求的url是另一個(gè)域。
xxx + iframe 跨域: 被代理者是要請(qǐng)求的html,請(qǐng)求的url返回的那個(gè)域?qū)儆诖碛?,代理域和被代理域在同一個(gè)域名下,代理域指的是iframe。請(qǐng)求的url是另一個(gè)域。(window.name,iframe + form表單,window.postMessage,document.domain,location.hash)

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

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 所謂跨域 跨域是一種瀏覽器同源安全策略,也即瀏覽器單方面限制腳本的跨域訪問。很多人可能誤認(rèn)為資源跨域時(shí)無法請(qǐng)...
    blurooo閱讀 6,269評(píng)論 11 54
  • 引用:http://www.dailichun.com/2017/03/22/ajaxCrossDomainSol...
    Deam無限閱讀 2,320評(píng)論 0 9
  • 受瀏覽器的同源策略限制,JavaSript只能請(qǐng)求本域內(nèi)的資源。跨域資源共享(Cross-Origin Resou...
    AISpider閱讀 278評(píng)論 0 0
  • 背景 最近做項(xiàng)目經(jīng)常碰到跨域的問題,總在聯(lián)調(diào)中浪費(fèi)了不少時(shí)間,當(dāng)然若時(shí)間充裕的話,跨域基本都是可以通jsonp來解...
    ninetyhe_閱讀 826評(píng)論 2 3
  • 文~周艷玲 初秋 好多的花都隱了 你 卻讓我眼前一亮 仿佛一下從窗外涌來 一朵一朵 素淡清雅 ...
    語音兒閱讀 1,110評(píng)論 16 24

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