摘要:瀏覽器在請求不同域的資源時,會因為同源策略的影響請求不成功,這就是通常被提到的跨域問題。需要說明的幾個點如果是協議和端口造成的跨域問題,前端是無能為力的。
前段時間在網上跟一個大廠據說很NB的同行大佬聊天,然后大佬問了我一個問題,“在實際生產中前端怎么解決跨域問題” 我當時就回答說我們目前的狀況是需要服務端做一些配合解決的,然后大佬很不滿意的暗示了我一下JSONP用過嗎?我當時就覺得很不可思議,實際生產中就只有get請求嗎?而且這玩意兒在實際生產中都基本不用的,我開始有點懷疑我是不是掉隊了,所以今天大概梳理下這塊的知識點。
瀏覽器在請求不同域的資源時,會因為同源策略的影響請求不成功,這就是通常被提到的“跨域問題”。作為前端開發,跨域經常遇到,我們通常所說的JS跨域,指的是在處理跨域請求的過程中,技術面會偏瀏覽器端較多一些,那什么是跨域呢?
JavaScript出于安全方面的考慮,不允許跨域調用其他頁面的對象,當協議、子域名、主域名、端口號,其中的任意一個不同的時候都是不同的域,那也就是算做跨域。
請求跨域的時候并不是請求發不出去,請求能發出去,服務端能收到請求并正常返回結果,只是結果被瀏覽器攔截了,正是因為同源策略的限制,同源策略的要求是協議、域名、和端口號都完全一致才可以進行正常的通信。
需要說明的幾個點:
1.如果是協議和端口造成的跨域問題,前端是無能為力的。
2.在跨域問題上,域只是通過訪問URL的頭部(.com或者.cn以及之前部分)來識別的,而不是根據域名對應的IP地址是否相同去判斷的。
3.在實際生產中JSONP的局限性很大,基本上不會去考慮,使用幾率很小。
目前我們的狀況是在服務器端頭部增加配置:
header( "Access-Control-Allow-Origin:*" ); header( "Access-Control-Allow-Methods:POST,GET" );
各位路過的大佬有什么優秀的方案嗎?請不吝賜教
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104324.html
摘要:解決方案跨域問題可以說在前端方面不可避免,但同源策略畢竟在保護網絡信息安全方面起到很大的作用。 起因 說起來源...今天去茶水間倒水時,偶然聽到公司面試官在問面試者前端跨域的如何解決。我心中默默想了一想,啪啪啪瞬間想出幾個關鍵詞,iframe,cors,同源策略,jsonp...轉念一想,雖然這是很常見的面試題,然而我在開發過程中,還真沒有用過jsonp這種方式...就連原理也說不好。...
摘要:解決方案跨域問題可以說在前端方面不可避免,但同源策略畢竟在保護網絡信息安全方面起到很大的作用。 起因 說起來源...今天去茶水間倒水時,偶然聽到公司面試官在問面試者前端跨域的如何解決。我心中默默想了一想,啪啪啪瞬間想出幾個關鍵詞,iframe,cors,同源策略,jsonp...轉念一想,雖然這是很常見的面試題,然而我在開發過程中,還真沒有用過jsonp這種方式...就連原理也說不好。...
摘要:還是老規矩,從易到難吧傳統的定時器,異步編程等。分配對象時,先是在空間中進行分配。內存泄漏內存泄漏是指程序中己動態分配的堆內存由于某種原因程序未釋放或無法釋放,造成系統內存的浪費,導致程序運行速度減慢甚至系統崩潰等嚴重后果。 showImg(https://segmentfault.com/img/bVbwkad?w=1286&h=876); 網上參差不棄的面試題,本文由淺入深,讓你在...
摘要:還是老規矩,從易到難吧傳統的定時器,異步編程等。分配對象時,先是在空間中進行分配。內存泄漏內存泄漏是指程序中己動態分配的堆內存由于某種原因程序未釋放或無法釋放,造成系統內存的浪費,導致程序運行速度減慢甚至系統崩潰等嚴重后果。 showImg(https://segmentfault.com/img/bVbwkad?w=1286&h=876); 網上參差不棄的面試題,本文由淺入深,讓你在...
閱讀 3307·2021-11-16 11:45
閱讀 2665·2021-09-22 15:23
閱讀 569·2021-07-30 14:58
閱讀 463·2019-08-30 15:54
閱讀 2244·2019-08-29 16:19
閱讀 3020·2019-08-29 12:45
閱讀 944·2019-08-23 17:57
閱讀 1795·2019-08-23 17:54