国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java過濾器配置類導(dǎo)致跨域問題:Request header field token is not allowed by Access-Control-Allow-Headers in prefli

這篇具有很好參考價值的文章主要介紹了Java過濾器配置類導(dǎo)致跨域問題:Request header field token is not allowed by Access-Control-Allow-Headers in prefli。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、技術(shù)棧

前端:Vue、Axios
后端:Spring Security、SpringBoot、JWT等等

二、問題描述

報錯信息如下(前端):

Access to XMLHttpRequest at 'http://localhost:8081/restaurant/list' from origin 'http://localhost:8080' has been blocked by CORS policy: Request header field token is not allowed by Access-Control-Allow-Headers in preflight response.
Error: Network Error
    at createError (createError.js?2d83:16:1)
    at XMLHttpRequest.handleError (xhr.js?b50d:99:1)
GET http://localhost:8081/restaurant/list net::ERR_FAILED

java跨域過濾器,筆記,java,前端,spring boot,跨域問題
報錯信息翻譯:
在preflight響應(yīng)中,Access-Control-Allow-Headers不允許請求報頭字段標(biāo)記。
這個翻譯也讓我們很快知道了問題的所在,就是Access-Control-Allow-Headers里面不允許token字段出現(xiàn),也就是說,token字段不允許出現(xiàn)在Headers里面。
我也看到這個問題看起來是沒有走到后端,我Debug了一下后端的過濾器,發(fā)現(xiàn)有寫過濾器可以進(jìn)行Debug,但是有些過濾器根本沒有進(jìn)行Debug就結(jié)束了,我Debug了一下我后端接口的Controller接口,也沒有走到那里,這說明我的請求沒有走到接口,而是背被某個過濾器給劫持了,我自己也看了很久,在網(wǎng)上翻看了一些資料之后,我發(fā)現(xiàn)了解決方法。

三、解決方法

在Java項目的過濾器配置類中,加入下面的配置信息:

response.setHeader("Access-Control-Allow-Headers", "token, access-control-allow-origin, authority, content-type, version-info, X-Requested-With");

java跨域過濾器,筆記,java,前端,spring boot,跨域問題

完整的配置文件如下:

@Component
@Slf4j
public class SimpleCORSFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        HttpServletRequest reqs = (HttpServletRequest) req;
        String curOrigin = reqs.getHeader("Origin");
        log.info("curOrigi:" + curOrigin);
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, HEAD,PUT");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "token, access-control-allow-origin, authority, content-type, version-info, X-Requested-With");
        HttpServletRequest request = (HttpServletRequest) req;
        log.info("當(dāng)前請求方法" + request.getMethod());
        if ("OPTIONS".equals(request.getMethod())) {
            response.setStatus(HttpServletResponse.SC_OK);
            return;
        }
        chain.doFilter(req, res);
    }

    @Override
    public void destroy() {
        Filter.super.destroy();
    }
}

原因是如果需要往Header里面添加新的字段內(nèi)容,需要在后端配置這個信息才行,這樣后端才可以正常接收Header里面的數(shù)據(jù)。
這樣,就可以正常訪問后端數(shù)據(jù)了。
java跨域過濾器,筆記,java,前端,spring boot,跨域問題文章來源地址http://www.zghlxwxcb.cn/news/detail-755919.html

到了這里,關(guān)于Java過濾器配置類導(dǎo)致跨域問題:Request header field token is not allowed by Access-Control-Allow-Headers in prefli的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【安全】 Java 過濾器 解決存儲型xss攻擊問題

    【安全】 Java 過濾器 解決存儲型xss攻擊問題

    跨站腳本( cross site script )為了避免與樣式css(Cascading Style Sheets層疊樣式表)混淆,所以簡稱為XSS。 XSS是一種經(jīng)常出現(xiàn)在web應(yīng)用中的計算機(jī)安全漏洞 ,也是web中最主流的攻擊方式。 XSS是指惡意攻擊者利用網(wǎng)站沒有對用戶提交數(shù)據(jù)進(jìn)行轉(zhuǎn)義處理或者過濾不足的缺點,進(jìn)而添加一些

    2024年02月08日
    瀏覽(24)
  • 【微服務(wù)技術(shù)二】Feign、Gateway(路由、過濾器、跨域)的初步認(rèn)知

    【微服務(wù)技術(shù)二】Feign、Gateway(路由、過濾器、跨域)的初步認(rèn)知

    之前遠(yuǎn)程調(diào)用使用RestTemplate,代碼如下: 使用RestTemplate的缺陷: 代碼可讀性差,編程體驗不統(tǒng)一(莫名的url路徑) 參數(shù)復(fù)雜時的URL難以維護(hù) Feign是一個聲明式的http客戶端,官方網(wǎng)址: https://github.com/OpenFeign/feign Feign替代RestTemplate 使用Feign的步驟: 1、引入依賴: 2、在消費者

    2024年02月12日
    瀏覽(25)
  • 微服務(wù)Gateway網(wǎng)關(guān)(自動定位/自定義過濾器/解決跨域)+nginx反向代理gateway集群

    微服務(wù)Gateway網(wǎng)關(guān)(自動定位/自定義過濾器/解決跨域)+nginx反向代理gateway集群

    目錄 Gateway網(wǎng)關(guān) 1.0.為什么需要網(wǎng)關(guān)? 1.1.如何使用gateway網(wǎng)關(guān) 1.2.網(wǎng)關(guān)從注冊中心拉取服務(wù) 1.3.gateway自動定位 1.4.gateway常見的斷言 1.5.gateway內(nèi)置的過濾器 1.6.自定義過濾器-全局過濾器 1.7.解決跨域問題 2.nginx反向代理gateway集群 2.1.配置文件 繼? nacos注冊中心+Ribbon負(fù)載均衡+完成

    2024年02月06日
    瀏覽(43)
  • Javaweb | 過濾器、配置、過濾器鏈、優(yōu)先級

    Javaweb | 過濾器、配置、過濾器鏈、優(yōu)先級

    ??wei_shuo的個人主頁 ??wei_shuo的學(xué)習(xí)社區(qū) ??Hello World ! 概念 過濾器(Filter)是處于客戶端與服務(wù)器目標(biāo)資源之間的一道過濾技術(shù) 用戶的請求和響應(yīng)都需要經(jīng)過過濾器 過濾器作用 執(zhí)行地位在Servlet之前,客戶端發(fā)送請求是,會先經(jīng)過Filter,再到達(dá)目標(biāo)Servlet中;響應(yīng)時,會根

    2023年04月17日
    瀏覽(95)
  • 【Java】SpringCloud Gateway自定義過濾器中獲取ServerHttpRequest的body中的數(shù)據(jù)為NULL的問題

    【Java】SpringCloud Gateway自定義過濾器中獲取ServerHttpRequest的body中的數(shù)據(jù)為NULL的問題

    這個情況出現(xiàn)在,我需要進(jìn)行驗證碼的校驗,因此用戶的請求首先需要被驗證碼過濾器校驗,而驗證碼過濾器不需要設(shè)定為全局過濾器,因此我就單純的把它設(shè)定為了一個局部過濾器,代碼如下 然后我進(jìn)行請求的時候,json參數(shù)如下 然后請求經(jīng)過解析后會發(fā)現(xiàn),字符串居然是

    2024年02月09日
    瀏覽(18)
  • java過濾器(Filter)

    java過濾器(Filter)

    原文鏈接: java過濾器(Filter – 編程屋 目錄 1 過濾器簡介 2 Filter詳細(xì)介紹 3 Filter的用法 3.1 用法1 ?3.2 用法2 filter也稱之為過濾器,它是javaWeb三大組件之一(Servlet程序、Listener監(jiān)聽器、Filter過濾器) 作用: 既可以對請求進(jìn)行攔截,也可以對響應(yīng)進(jìn)行處理。 常見場景: 權(quán)限檢

    2024年02月20日
    瀏覽(30)
  • Java實現(xiàn)布隆過濾器

    Java實現(xiàn)布隆過濾器

    背景: 為預(yù)防大量黑客故意發(fā)起非法的時間查詢請求,造成緩存擊穿,建議采用布隆過濾器的方法解決。布隆過濾器通過一個很長的二進(jìn)制向量和一系列隨機(jī)映射函數(shù)(哈希函數(shù))來記錄與識別某個數(shù)據(jù)是否在一個集合中。如果數(shù)據(jù)不在集合中,能被識別出來,不需要到數(shù)據(jù)

    2024年02月01日
    瀏覽(25)
  • [Java]過濾器(Filter)

    [Java]過濾器(Filter)

    一、什么是過濾器 過濾器是Servlet的高級特性之一,是實現(xiàn)Filter接口的Java類! 過濾器的執(zhí)行流程: ? 從上面的圖我們可以發(fā)現(xiàn),當(dāng)瀏覽器發(fā)送請求給服務(wù)器的時候, 先執(zhí)行過濾器,然后才訪問Web的資源。服務(wù)器響應(yīng)Response,從Web資源抵達(dá)瀏覽器之前,也會途徑過濾器。 過濾

    2024年02月11日
    瀏覽(20)
  • Spring/SpringBoot 過濾器修改、獲取http 請求request中的參數(shù) 和 response返回值,比如修改請求體和響應(yīng)體的字符編碼

    通過自定義filter,RequestWrapper,ResponseWrapper 處理請求和響應(yīng)數(shù)據(jù),比如修改請求體和響應(yīng)體的字符編碼 1.request 和 response 中的數(shù)據(jù)都是 存在流中的(緩存中)獲取一次就沒有了,需要重新寫回去。所以需要兩個包裝類分別繼承HttpServletRequestWrapper 和 HttpServletResponseWrapper 對 r

    2024年02月15日
    瀏覽(37)
  • Java 過濾器 @WebFilter 詳解

    Java 過濾器 @WebFilter 詳解

    @WebFilter 注解是JavaEE中的一種注解,用于標(biāo)識一個類為過濾器(Filter)。過濾器用于對請求進(jìn)行過濾和處理,可以在請求到達(dá)目標(biāo)資源之前或之后執(zhí)行一些操作。 使用**@WebFilter**注解可以將一個類聲明為過濾器,并指定過濾器的名稱、URL模式、Servlet名稱等。 簡化配置 :不再需要

    2024年02月03日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包