重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
這篇文章給大家介紹AJAX中怎么利用 CORS解決跨域,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創新互聯"三網合一"的企業建站思路。企業可建設擁有電腦版、微信版、手機版的企業網站。實現跨屏營銷,產品發布一步更新,電腦網絡+移動網絡一網打盡,滿足企業的營銷需求!創新互聯具備承接各種類型的成都做網站、網站制作、成都外貿網站建設項目的能力。經過十年的努力的開拓,為不同行業的企事業單位提供了優質的服務,并獲得了客戶的一致好評。
什么是AJAX ?
AJAX 是無需刷新頁面就能夠從服務器去的數據的一種方法,負責Ajax運作的核心對象是XMLHttpRequest(XHR)對象。
同源策略是對XHR的一個主要約束,它為通信設置了“相同的域、相同的端口、相同的協議”這一限制。
試圖訪問上述限制之外的資源都會引發安全錯誤,除非采用被認可的跨域解決方案。
這個方案叫做CORS(Cross-Origin Resource Sharing)跨源資源共享。
方案一:
//弊端:存在瀏覽器兼容的問題
服務方設置: Access-Control-Allow-Origin。
切記:Access-Control-Allow-Origin 不可設置為 * 。
//設置可供訪問的白名單 $white_list = ['http://t1.abc.com','http://t2.abc.com']; $_SERVER['HTTP_ORIGIN'] //表示請求方的域名 $http_origin = ''; if (!empty($_SERVER['HTTP_ORIGIN']) && in_array($_SERVER['HTTP_ORIGIN'],$white_list)) { $http_origin = $_SERVER['HTTP_ORIGIN']; //設置 header 信息 header("Access-Control-Allow-Origin: {$http_origin}"); header("Access-Control-Allow-Methods", "POST,GET"); header('Access-Control-Allow-Credentials:true'); //允許訪問Cookie header('Access-Control-Allow-Headers : X-Requested-With'); //設置Headers } //執行代碼邏輯...
另:如果請求的是html,在文件里加上meta標簽。
方案二:
//弊端:不支持 POST 請求。
使用 JSONP 進行解決跨域問題,網上文章蠻多的。
方案三:
與方案一類似。
修改Nginx Apache 配置。
//Nginx http { ...... add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; ...... } Apache :...... Header set Access-Control-Allow-Origin *
關于AJAX中怎么利用 CORS解決跨域就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。