這篇文章給大家介紹AJAX中怎么利用 CORS解決跨域,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡+移動網(wǎng)絡一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)具備承接各種類型的成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設項目的能力。經(jīng)過十年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務,并獲得了客戶的一致好評。
什么是AJAX ?
AJAX 是無需刷新頁面就能夠從服務器去的數(shù)據(jù)的一種方法,負責Ajax運作的核心對象是XMLHttpRequest(XHR)對象。
同源策略是對XHR的一個主要約束,它為通信設置了“相同的域、相同的端口、相同的協(xié)議”這一限制。
試圖訪問上述限制之外的資源都會引發(fā)安全錯誤,除非采用被認可的跨域解決方案。
這個方案叫做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 } //執(zhí)行代碼邏輯...
另:如果請求的是html,在文件里加上meta標簽。
<meta http-equiv="Access-Control-Allow-Origin" content="*">
方案二:
//弊端:不支持 POST 請求。
使用 JSONP 進行解決跨域問題,網(wǎng)上文章蠻多的。
方案三:
與方案一類似。
修改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 : <Directory /> ...... Header set Access-Control-Allow-Origin * </Directory>
關(guān)于AJAX中怎么利用 CORS解決跨域就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享文章:AJAX中怎么利用CORS解決跨域
標題來源:http://jinyejixie.com/article30/jjiopo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站維護、動態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設、品牌網(wǎng)站制作、移動網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)