CORS能作什麼:程序員
正常使用AJAX會須要正常考慮跨域問題,因此偉大的程序員們又折騰出了一系列跨域問題的解決方案,如JSONP、flash、ifame、xhr2等等。跨域
本文介紹的CORS就是一套AJAX跨域問題的解決方案。瀏覽器
CORS的原理:服務器
CORS定義一種跨域訪問的機制,可讓AJAX實現跨域訪問。CORS 容許一個域上的網絡應用向另外一個域提交跨域 AJAX 請求。實現此功能很是簡單,只需由服務器發送一個響應標頭便可。網絡
CORS瀏覽器支持狀況以下圖:工具
假設咱們頁面或者應用已在 http://www.test1.com 上了,而咱們打算從 http://www.test2.com 請求提取數據。通常狀況下,若是咱們直接使用 AJAX 來請求將會失敗,瀏覽器也會返回「源不匹配」的錯誤,"跨域"也就以此由來。測試
利用 CORS,http://www.test2.com 只需添加一個標頭,就能夠容許來自 http://www.test1.com 的請求,下圖是我在PHP中的 hander() 設置,「*」號表示容許任何域向咱們的服務端提交請求:spa
也能夠設置指定的域名,如域名 http://www.test2.com ,那麼就容許來自這個域名的請求:調試
當前我設置的header爲「*」,任意一個請求過來以後服務端咱們均可以進行處理&響應,那麼在調試工具中能夠看到其頭信息設置,其中見紅框中有一項信息是「Access-Control-Allow-Origin:* 」,表示咱們已經啓用CORS,以下圖。server
PS:因爲demo都在我廠的兩臺測試機間完成,外網也不能訪問,因此在這就不提供demo了,見諒
簡單的一個header設置,一個支持跨域&POST請求的server就完成了:)
固然,若是沒有開啓CORS一定失敗的啦,以下圖: