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

CORS跨域問題常用解決方法代碼實例

 更新時間:2020年11月16日 10:49:39   作者:侯賽雷  
這篇文章主要介紹了CORS跨域問題常用解決方法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一 后端服務器使用過濾器

新建過濾器:

/**
 * 解決跨域
 */
public class AccessControlAllowOriginFilter implements Filter {
  @Override
  public void init(FilterConfig filterConfig) throws ServletException { }

  @Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    System.out.println("解決跨域請求");
    HttpServletResponse response = (HttpServletResponse) servletResponse;
    response.setHeader("Access-Control-Allow-Origin", "*");//允許所有網(wǎng)站跨域訪問
    response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
    response.setHeader("Access-Control-Allow-Credentials", "true");    //這里如果前端請求header首字母是小寫也是不行得,所以大小寫都寫上就沒問題了
    response.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin,content-type,x-requested-with,Content-Type,Access-Control-Allow-Headers,Content-Length,Accept,Authorization,X-Requested-With");
    filterChain.doFilter(servletRequest, response);
  }

  @Override
  public void destroy() {}
}

前端header需要添加:

$.ajax( {
      url : 'http://c2.zhuzher.com/pdm/know/active?hotelid=808047&sdate=2019-11-09&edate=2019-11-11',
      beforeSend: function (xhr) {
          xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); //設置跨域訪問信息
          xhr.setRequestHeader("Content-Type", "application/json;charset=utf-8");
      },
      type : 'get',
      dataType : 'json',
      data:{},
      success : function(data) {
        alert(1111);
      }
    });

二 后端接口springboot/springmvc使用注解

springMVC的版本要在4.2或以上版本才支持@CrossOrigin ;

方法需要指明Get或者POST才行:

三 本地nginx反向代理(推薦)

本地下載解壓nginx,添加一個server配置文件:

注意,如果是放在nginx的html目錄下一般是不需要加跨域配置的,否則會報配置多余錯誤

每次可先直接使用試試,不行再加下面add_header等配置.

###start跨域支持配置####
  add_header Access-Control-Allow-Origin '*';
  add_header Access-Control-Allow-Headers Accept,Origin,X-Requested-With,Content-Type,If-Modified-Since,Last-Modified,Content-Length,Content-Range,Range,Content-Description,Content-Disposition;
  add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
  add_header Access-Control-Request-Headers Content-Disposition;
  add_header Access-Control-Allow-Credentials true;

  ###end ###

  server {
    listen    80;
    server_name 127.0.0.1;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location / {
      root  html;
      index index.html index.htm;
    }
    
    #自定義本地路徑,代理轉發(fā)請求
    location /pdm    {
      proxy_pass  http://c2.zhuzher.com/pdm;
    }

  }
  
  server {
    listen    8081;
    server_name 127.0.0.1;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location / {
      root  html;
      index index.html index.htm;
    }
    
    #自定義本地路徑,代理轉發(fā)請求
     location /pdm    {
      proxy_pass http://c2.zhuzher.com/pdm;
      charset utf-8;
      #  proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;    
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

  }

項目里面直接調用配置的8081端口就可以了:

api.get('//localhost:8081/pdm/user/login',data)

注意這里還有一點需要注意,如果Content-Type是 application/json的話是無法發(fā)送跨域請求的,這里提供一種解決辦法,就是接口前端請求type改成

'Content-Type':'text/plain'

發(fā)送數(shù)據(jù)轉成字符串:

JSON.stringify(data)

后端接口用String接受數(shù)據(jù),然后再轉成對象就可以了:

@PostMapping("/distributeBatch")
  public ResMsg distributeSaleBatch(@RequestBody String params){
    System.out.println(params);
    //Integer user_id, Integer customer_id
    //Gson 字符串轉對象
    List<Map<String, Integer>> fromJson = new Gson().fromJson(params, new TypeToken<List<Map<String, Integer>>>() {
    }.getType());
    System.out.println(new Gson().toJson(fromJson));
    return registeredCustomerService.distributeSaleBatch(fromJson);
  }

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

相關文章

  • springboot中使用rabbitt的詳細方法

    springboot中使用rabbitt的詳細方法

    這篇文章主要介紹了springboot中使用rabbitt,通過本文學習讓我們了解如何在Spring Boot中使用RabbitMQ,并使用不同的交換機和隊列類型以及消息確認模式,需要的朋友可以參考下
    2023-05-05
  • 關于SpringBoot mysql數(shù)據(jù)庫時區(qū)問題

    關于SpringBoot mysql數(shù)據(jù)庫時區(qū)問題

    在后端開發(fā)過程中經(jīng)常會遇到幾個時區(qū)設置問題,今天分幾種情況給大家介紹SpringBoot mysql數(shù)據(jù)庫時區(qū)問題,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • IDEA中的yml文件與properties互相轉換

    IDEA中的yml文件與properties互相轉換

    這篇文章主要介紹了IDEA中的yml文件與properties互相轉換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • json-lib將json格式的字符串,轉化為java對象的實例

    json-lib將json格式的字符串,轉化為java對象的實例

    下面小編就為大家?guī)硪黄猨son-lib將json格式的字符串,轉化為java對象的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Java基礎開發(fā)之JDBC操作數(shù)據(jù)庫增刪改查,分頁查詢實例詳解

    Java基礎開發(fā)之JDBC操作數(shù)據(jù)庫增刪改查,分頁查詢實例詳解

    這篇文章主要介紹了Java基礎開發(fā)之JDBC操作數(shù)據(jù)庫增刪改查,分頁查詢實例詳解,需要的朋友可以參考下
    2020-02-02
  • Java如何使用命令查看內存占用情況

    Java如何使用命令查看內存占用情況

    jhat是一個用于分析Java堆轉儲文件的工具,通過啟動Web服務器并加載堆轉儲文件,可以在瀏覽器中查看占用最多內存的類及其詳細信息
    2025-02-02
  • Spring?Cache抽象-使用SpEL表達式解析

    Spring?Cache抽象-使用SpEL表達式解析

    這篇文章主要介紹了Spring?Cache抽象-使用SpEL表達式解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • IDEA?2019.2.3破解激活教程(親測有效)

    IDEA?2019.2.3破解激活教程(親測有效)

    這篇文章主要介紹了IDEA?2019.2.3破解激活教程(親測有效),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Java?IPage分頁操作 附加自定義sql

    Java?IPage分頁操作 附加自定義sql

    這篇文章主要介紹了Java?IPage分頁加自定義sql,主要包括引入依賴,impl常規(guī)操作,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Java中實現(xiàn)樹形菜單的兩種方式

    Java中實現(xiàn)樹形菜單的兩種方式

    這篇文中,我一共會用兩種方式來實現(xiàn)目錄樹的數(shù)據(jù)結構,兩種寫法邏輯是一樣的,只是一種適合新手理解,一種看著簡單明了但是對于小白不是很好理解,在這里我會很詳細的講解每一步代碼,主要是方便新人看懂,彌補曾經(jīng)自己學習過程中的苦惱,需要的朋友可以參考下
    2023-09-09

最新評論

夏河县| 泾川县| 泰来县| 青海省| 元江| 七台河市| 瓦房店市| 祁门县| 鹤庆县| 民权县| 延津县| 合肥市| 云梦县| 鞍山市| 泰州市| 剑阁县| 建宁县| 河北省| 房山区| 曲水县| 会同县| 博罗县| 凯里市| 七台河市| 弥渡县| 正镶白旗| 车致| 垦利县| 柯坪县| 呼图壁县| 松滋市| 黔西县| 彭山县| 武冈市| 泸州市| 尉氏县| 南京市| 开鲁县| 咸宁市| 巨鹿县| 陆丰市|