AJAX中怎么利用CORS解決跨域

這篇文章給大家介紹AJAX中怎么利用 CORS解決跨域,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機(jī)版的企業(yè)網(wǎng)站。實(shí)現(xiàn)跨屏營(yíng)銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動(dòng)網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營(yíng)銷需求!創(chuàng)新互聯(lián)具備承接各種類型的成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)項(xiàng)目的能力。經(jīng)過(guò)十年的努力的開(kāi)拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評(píng)。

什么是AJAX ?

AJAX 是無(wú)需刷新頁(yè)面就能夠從服務(wù)器去的數(shù)據(jù)的一種方法,負(fù)責(zé)Ajax運(yùn)作的核心對(duì)象是XMLHttpRequest(XHR)對(duì)象。

同源策略是對(duì)XHR的一個(gè)主要約束,它為通信設(shè)置了“相同的域、相同的端口、相同的協(xié)議”這一限制。
試圖訪問(wèn)上述限制之外的資源都會(huì)引發(fā)安全錯(cuò)誤,除非采用被認(rèn)可的跨域解決方案。

這個(gè)方案叫做CORS(Cross-Origin Resource Sharing)跨源資源共享。

  • 方案一:

    //弊端:存在瀏覽器兼容的問(wèn)題

    AJAX中怎么利用 CORS解決跨域

    服務(wù)方設(shè)置: Access-Control-Allow-Origin。

    切記:Access-Control-Allow-Origin 不可設(shè)置為 * 。

    //設(shè)置可供訪問(wèn)的白名單
    $white_list = ['http://t1.abc.com','http://t2.abc.com'];
    
    $_SERVER['HTTP_ORIGIN'] //表示請(qǐng)求方的域名
    
    $http_origin = '';
    if (!empty($_SERVER['HTTP_ORIGIN']) && in_array($_SERVER['HTTP_ORIGIN'],$white_list)) {
        $http_origin = $_SERVER['HTTP_ORIGIN'];
    
        //設(shè)置 header 信息
        header("Access-Control-Allow-Origin: {$http_origin}");
        header("Access-Control-Allow-Methods", "POST,GET");
        header('Access-Control-Allow-Credentials:true');  //允許訪問(wèn)Cookie
        header('Access-Control-Allow-Headers : X-Requested-With'); //設(shè)置Headers
    }
    //執(zhí)行代碼邏輯...

    另:如果請(qǐng)求的是html,在文件里加上meta標(biāo)簽。

    <meta http-equiv="Access-Control-Allow-Origin" content="*">
  • 方案二:

    //弊端:不支持 POST 請(qǐng)求。

    使用 JSONP 進(jìn)行解決跨域問(wèn)題,網(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)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

分享文章:AJAX中怎么利用CORS解決跨域
標(biāo)題來(lái)源:http://bm7419.com/article30/jjiopo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)網(wǎng)站維護(hù)、動(dòng)態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)