欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

解決網(wǎng)站跨域的幾種方式

2021-02-20    分類: 網(wǎng)站建設(shè)

1、什么是跨越?

  • 一個網(wǎng)頁向另一個不同域名/不同協(xié)議/不同端口的網(wǎng)頁請求資源,這就是跨域。
  • 跨域原因產(chǎn)生:在當(dāng)前域名請求網(wǎng)站中,默認(rèn)不允許通過ajax請求發(fā)送其他域名。

2、為什么會產(chǎn)生跨域請求?

  • 因為瀏覽器使用了同源策略

3、什么是同源策略?

  • 同源策略是Netscape提出的一個著名的安全策略,現(xiàn)在所有支持JavaScript的瀏覽器都會使用這個策略。同源策略是瀏覽器最核心也最基本的安全功能,如果缺少同源策略,瀏覽器的正常功能可能受到影響??梢哉fweb是構(gòu)建在同源策略的基礎(chǔ)之上的,瀏覽器只是針對同源策略的一種實現(xiàn)。

4、為什么瀏覽器要使用同源策略?

  • 是為了保證用戶的信息安全,防止惡意網(wǎng)站竊取數(shù)據(jù),如果網(wǎng)頁之間不滿足同源要求,將不能:
  • 域名、網(wǎng)絡(luò)協(xié)議、端口號相同,三條有一條不同就會產(chǎn)生跨域。 例如:你用瀏覽器打開http://baidu.com,瀏覽器執(zhí)行JavaScript腳本時發(fā)現(xiàn)腳本向http://cloud.baidu.com域名

    發(fā)請求,這時瀏覽器就會報錯,這就是跨域報錯。

    解決方案有五:

    1、前端使用jsonp (不推薦使用)

    • 當(dāng)我們正常地請求一個JSON數(shù)據(jù)的時候,服務(wù)端返回的是一串 JSON類型的數(shù)據(jù),而我們使用 JSONP模式來請求數(shù)據(jù)的時候服務(wù)端返回的是一段可執(zhí)行的 JavaScript代碼。因為jsonp 跨域的原理就是用的動態(tài)加載 script的src ,所以我們只能把參數(shù)通過 url的方式傳遞,所以jsonp的 type類型只能是get示例:
    $.ajax({
     url: 'http://192.168.1.114/yii/demos/test.php', //不同的域
     type: 'GET', // jsonp模式只有GET 是合法的
     data: {
     'action': 'aaron'
     },
     dataType: 'jsonp', // 數(shù)據(jù)類型
     jsonp: 'backfunc', // 指定回調(diào)函數(shù)名,與服務(wù)器端接收的一致,并回傳回來
    })
    
    • 使用JSONP 模式來請求數(shù)據(jù)的整個流程:客戶端發(fā)送一個請求,規(guī)定一個可執(zhí)行的函數(shù)名(這里就是 jQuery做了封裝的處理,自動幫你生成回調(diào)函數(shù)并把數(shù)據(jù)取出來供success屬性方法來調(diào)用,而不是傳遞的一個回調(diào)句柄),服務(wù)器端接受了這個 backfunc函數(shù)名,然后把數(shù)據(jù)通過實參的形式發(fā)送出去
    • (在jquery 源碼中, jsonp的實現(xiàn)方式是動態(tài)添加標(biāo)簽來調(diào)用服務(wù)器提供的 js腳本。jquery 會在window對象中加載一個全局的函數(shù),當(dāng)代碼插入時函數(shù)執(zhí)行,執(zhí)行完畢后就會被移除。同時jquery還對非跨域的請求進(jìn)行了優(yōu)化,如果這個請求是在同一個域名下那么他就會像正常的 Ajax請求一樣工作。)

    2、后臺Http請求轉(zhuǎn)發(fā)

    • 使用HttpClinet轉(zhuǎn)發(fā)進(jìn)行轉(zhuǎn)發(fā)(簡單的例子 不推薦使用這種方式)
    try {
     HttpClient client = HttpClients.createDefault(); //client對象
     HttpGet get = new HttpGet("http://localhost:8080/test"); //創(chuàng)建get請求
     CloseableHttpResponse response = httpClient.execute(get); //執(zhí)行g(shù)et請求
     String mes = EntityUtils.toString(response.getEntity()); //將返回體的信息轉(zhuǎn)換為字符串
     System.out.println(mes);
    } catch (ClientProtocolException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace();
    }
    

    3、后臺配置同源Cors (推薦)

    • 在SpringBoot2.0 上的跨域 用以下代碼配置 即可好解決你的前后端跨域請求問題

    在SpringBoot2.0 上的跨域 用以下代碼配置 即可好解決你的前后端跨域請求問題

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.cors.CorsConfiguration;
    import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
    import org.springframework.web.filter.CorsFilter;
    /**
     * 實現(xiàn)基本的跨域請求
     * @author linhongcun
     *
     */
    @Configuration
    public class CorsConfig {
     @Bean
     public CorsFilter corsFilter() {
     final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
     final CorsConfiguration corsConfiguration = new CorsConfiguration();
     /*是否允許請求帶有驗證信息*/
     corsConfiguration.setAllowCredentials(true);
     /*允許訪問的客戶端
    域名*/ corsConfiguration.addAllowedOrigin("*"); /*允許服務(wù)端訪問的客戶端請求頭*/ corsConfiguration.addAllowedHeader("*"); /*允許訪問的方法名,GET POST等*/ corsConfiguration.addAllowEDMethod("*"); urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration); return new CorsFilter(urlBasedCorsConfigurationSource); } }

    4、使用SpringCloud網(wǎng)關(guān)

    • 服務(wù)網(wǎng)關(guān)(zuul)又稱路由中心,用來統(tǒng)一訪問所有api接口,維護(hù)服務(wù)。
    • Spring Cloud Zuul通過與Spring Cloud Eureka的整合,實現(xiàn)了對服務(wù)實例的自動化維護(hù),所以在使用服務(wù)路由配置的時候,我們不需要向傳統(tǒng)路由配置方式那樣去指定具體的服務(wù)實例地址,只需要通過Ant模式配置文件參數(shù)即可

    5、使用nginx做轉(zhuǎn)發(fā)

    • 現(xiàn)在有兩個網(wǎng)站想互相訪問接口 在http://a.a.com:81/A中想訪問 http://b.b.com:81/B 那么進(jìn)行如下配置即可
    • 然后通過訪問 www.my.com/A 里面即可訪問 www.my.com/B
    server {
     listen 80;
     server_name www.my.com;
     location /A {
     proxy_pass http://a.a.com:81/A;
     index index.html index.htm;
     }
     location /B {
     proxy_pass http://b.b.com:81/B;
     index index.html index.htm;
     }
     }
    
    • 如果是兩個端口想互相訪問接口 在http://b.b.com:80/Api中想訪問 http://b.b.com:81/Api 那么進(jìn)行如下配置即可
    • 使用nginx轉(zhuǎn)發(fā)機(jī)制就可以完成跨域問題
    server {
     listen 80;
     server_name b.b.com;
     location /Api {
     proxy_pass http://b.b.com:81/Api;
     index index.html index.htm;
     }
     }
    

    歡迎工作一到五年的Java工程師朋友們加入Java程序員開發(fā): 721575865

    群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構(gòu)資料)合理利用自己每一分每一秒的時間來學(xué)習(xí)提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

    名稱欄目:解決網(wǎng)站跨域的幾種方式
    文章URL:http://aaarwkj.com/news1/102001.html

    成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、虛擬主機(jī)、關(guān)鍵詞優(yōu)化、軟件開發(fā)、域名注冊、App設(shè)計

    廣告

    聲明:本網(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)

    外貿(mào)網(wǎng)站建設(shè)
    色欧美在线视频观看日韩| 黄色av链接在线观看| 人妻一少妇一区二区三区 | 超碰av之男人的天堂| 国产精品麻豆一区二区三区| 禁区正片免费看完整国产| 神马视频一区二区在线观看| 日韩精品一区二区三区夜色| 热久久青草精品欧美一区| 国产国语激情对白在线| 欧美日韩亚洲人人夜夜澡| 婷婷六月开心激情五月| 亚欧熟女乱色一二三区日韩| 亚洲精品一区二区三区pp| 亚洲一区二区精品91眼镜| 国产黄色免费精品网站| 国产成人原创免费观看| 欧美亚洲国产日韩熟女| 成人福利网站午夜一区| 亚洲成av在线免费不卡| 欧美一级免费黄片在线播放| 日本少妇三级网站大全| 亚洲男人堂色偷偷一区| 日韩精品中文字幕有码在线| 国产黄色片网站在线看| 伊人久久九九精品综合| 日本韩国欧美在线一区| 色久悠悠婷婷综合在线亚洲| 2023天天操夜夜操| 特黄特色的日本大片| 老熟妇奂伦一区二区三区| 三级日本一区二区三区| 亚洲a∨乱码一区二区三区蜜臀| 婷婷五激情五月激情片| 色噜噜噜欧美人妻色综合| 中国亚洲黄色录像免费看| 成人黄色av免费在线观看| 国产成人免费自拍一区| 人妻的秘密一区二区三区| 久久一区二区视频在线观看| 日本一区二区不卡高清|