最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Springboot+React項目跨域訪問問題

 更新時間:2023年12月07日 10:39:03   作者:PY教義  
這篇文章主要介紹了詳解Springboot+React項目跨域訪問問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、開發(fā)環(huán)境

  • 框架:springboot 1.5.10.RELEASE
  • 開發(fā)工具:IDEA
  • JDK:1.8
  • 前端框架:React 15.6.1
  • 瀏覽器:Chrome瀏覽器

二、跨域問題

本地使用ajax訪問localhost:8080端口時報錯:

Failed to load http://localhost:8080/test/test.do: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘null’ is therefore not allowed access.

React與Springboot前后端分離,React端口為3000而Springboot端口為8080,跨端口訪問用尋常的ajax是無法跨域訪問的。

什么是跨域?

當客戶端向服務器發(fā)起一個網(wǎng)絡請求,url會有包含三個主要信息:協(xié)議(protocol),域名(host),端口號(port)。當三部分都和服務器相同的情況下,屬于同源。但是只要有一個不同,就屬于構(gòu)成了跨域調(diào)用。會受到同源策略的限制。

同源策略限制從一個源加載的文檔或腳本如何與來自另一個源的資源進行交互。這是一個用于隔離潛在惡意文件的關(guān)鍵的安全機制。瀏覽器的同源策略,出于防范跨站腳本的攻擊,禁止客戶端腳本(如 JavaScript)對不同域的服務進行跨站調(diào)用(通常指使用XMLHttpRequest請求)。

三、解決方法

(1)java后端過濾器實現(xiàn)cros:

在后端配置過濾器CrosFilter

public class CorsFilter implements Filter {

  public void init(FilterConfig filterConfig) throws ServletException {
  }

  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    throws IOException, ServletException {
    HttpServletResponse httpResponse = (HttpServletResponse) response;
    httpResponse.setHeader("Access-Control-Allow-Origin", "http://localhost:3000");//設置允許跨域的域名,需要發(fā)送cookie信息,所以此處需要指定具體的域名,
    httpResponse.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    httpResponse.setHeader("Access-Control-Allow-Methods", "GET, PUT, DELETE, POST");//允許跨域的請求方式
    /**
     * ajax請求的時候如果帶有xhrFields:{withCredentials:true},
     * 那么服務器后臺在配置跨域的時候就必須要把Access-Control-Allow-Credentials這個請求頭加上去
     */
    httpResponse.setHeader("Access-Control-Allow-Credentials", "true");//允許發(fā)送Cookie信息
    httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1.
    httpResponse.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0. response.setHeader("Expires", "0");
    chain.doFilter(request, response);
  }

  public void destroy() {
    // TODO Auto-generated method stub
  }
}

參考:跨域資源共享 CORS 詳解——阮一峰

(2)使用代理服務器跨域訪問:

在dev.js中配置

devServer: {
      port: '3000',//開發(fā)端口
      host: '127.0.0.1',//主機地址
      historyApiFallback: false,
      disableHostCheck: true,
      noInfo: false,
      stats: 'minimal',
      inline: true,
      //開啟服務器的模塊熱替換(HMR)
      hot: true,
      // 和上文 output 的“publicPath”值保持一致
      publicPath: context,
      proxy: {
        '/mytest/*': {
          target: "http://localhost:8080",//對應后端端口
          secure: false,
          changeOrigin: true
        }//如果Controller的Requestmapping有多個這里也要對應多個
        ,'/test/*': {
          target: "http://localhost:8080",
          secure: false,
          changeOrigin: true
        }
      }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java如何調(diào)用HTTP接口

    Java如何調(diào)用HTTP接口

    本文介紹了Java調(diào)用HTTP接口的方法,包括使用HttpURLConnection和HttpClient工具,作者分享了個人經(jīng)驗,并鼓勵讀者參考和支持
    2025-01-01
  • java 請求跨域問題解決方法實例詳解

    java 請求跨域問題解決方法實例詳解

    這篇文章主要介紹了java 請求跨域問題解決方法實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Java為什么匿名內(nèi)部類參數(shù)引用需要用final進行修飾?

    Java為什么匿名內(nèi)部類參數(shù)引用需要用final進行修飾?

    今天小編就為大家分享一篇關(guān)于Java為什么匿名內(nèi)部類參數(shù)引用需要用final進行修飾?,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Java實現(xiàn)推箱子游戲

    Java實現(xiàn)推箱子游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)推箱子游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Java使用JDBC連接數(shù)據(jù)庫

    Java使用JDBC連接數(shù)據(jù)庫

    本文詳細講解了Java使用JDBC連接數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • java 增強型for循環(huán)語法詳解

    java 增強型for循環(huán)語法詳解

    增強型 for 循環(huán)(也稱為 “for-each” 循環(huán))是 Java 從 JDK 5 開始引入的一種便捷循環(huán)語法,旨在簡化對數(shù)組或集合類的迭代操作,這篇文章主要介紹了java 增強型for循環(huán) 詳解,需要的朋友可以參考下
    2025-04-04
  • 最新評論

    上思县| 松潘县| 泽普县| 陆河县| 永德县| 江陵县| 辽阳县| 临泽县| 明溪县| 平乡县| 泗水县| 腾冲县| 雷波县| 聂拉木县| 如皋市| 临泽县| 嘉义市| 杭锦后旗| 外汇| 兴安县| 邳州市| 松潘县| 郎溪县| 新乐市| 梅州市| 当雄县| 上犹县| 休宁县| 南召县| 随州市| 马关县| 封开县| 安仁县| 亳州市| 张家港市| 宾阳县| 封丘县| 扬中市| 榆社县| 威信县| 德化县|