事實(shí)上,面試時(shí)我喜歡問跨域,因?yàn)槎鄶?shù)開發(fā)者都知道它并且常用,而我希望能從面試者的回答中知道他在這個(gè)問題的深入程度,進(jìn)一步看看面試者研究問題的思維方式及鉆研精神,然而確實(shí)難到了很多人,當(dāng)然這也不是面試通過的必要條件;這些都是題外話了,呵呵~~~,這里也不炒冷飯如何實(shí)現(xiàn)跨域,也不是分析CORS的原理,因?yàn)楣雀枰幌戮陀泻芏鄥⒖假Y料。
有三點(diǎn)內(nèi)容:dataType、contentType、withCredential;既然說是CORS基礎(chǔ)要點(diǎn),這三點(diǎn)也當(dāng)然是圍繞著 CORS 來講。
dataType
dataType有些人可能會覺得陌生,但說起jquery或者是zepto的ajax請求,就想起來了,使用$.ajax請求時(shí),經(jīng)常會帶上參數(shù)dataType : 'json',如下圖:
dataType屬性是為了表明用什么格式解析服務(wù)端響應(yīng)的數(shù)據(jù),json表示ajax接收服務(wù)端響應(yīng)的數(shù)據(jù)時(shí)解析為JSON格式,但是你會發(fā)現(xiàn)有時(shí)候即使不設(shè)置dataType,也能夠正常解析響應(yīng)數(shù)據(jù),頁面上該顯示的內(nèi)容依然可以正常顯示,因?yàn)榭蚣苜N心,zepto在你不設(shè)置dataType的時(shí)候,默認(rèn)讀取服務(wù)端的響應(yīng)頭Content-Type,例如zepto把服務(wù)端的響應(yīng)頭ContentType : application/json轉(zhuǎn)換成data