3 CORS支持
3.1 介紹
出于安全考慮,瀏覽器禁止對(duì)當(dāng)前源之外的資源進(jìn)行AJAX調(diào)用。例如,當(dāng)你在一個(gè)標(biāo)簽頁(yè)檢查你的銀行賬戶時(shí),你可以在另一個(gè)標(biāo)簽頁(yè)打開evil.com的網(wǎng)站。在evil.com中的腳本不能使用你的憑據(jù)來通過AJAX請(qǐng)求訪問你的銀行API(例如,從你的銀行取款?。?。
跨域資源共享(Cross-origin resource sharing)(CORS)是W3C的標(biāo)準(zhǔn),大部分的瀏覽器都實(shí)現(xiàn)了這個(gè)標(biāo)準(zhǔn)來讓你可以靈活地指定什么樣的跨域請(qǐng)求是被授權(quán)的,而不用使用IFRAME或JSONP這些不太安全和功能不強(qiáng)的黑客技術(shù)。
從Spring Framework 4.2起,CORS就支持開箱即用。CORS請(qǐng)求(包括一個(gè)預(yù)檢請(qǐng)求OPTIONS方法)自動(dòng)分發(fā)到各個(gè)注冊(cè)的HandlerMapping
中。由于CorsProcessor的實(shí)現(xiàn)(默認(rèn)是DefaultCorsProcessor),它們處理CORS預(yù)檢請(qǐng)求,并攔截CORS的簡(jiǎn)單而實(shí)際請(qǐng)求,以便根據(jù)你提供的CORS配置添加相關(guān)的CORS響應(yīng)頭(如Access-Control-Allow-Origin
)。
網(wǎng)友評(píng)論