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

SpringBoot+Vue解決跨域問題幾種處理方案介紹

 更新時間:2025年07月23日 09:31:28   作者:隨意石光  
同源策略是一種約定,它是瀏覽器最核心也最基本的安全功能,同源策略會阻止一個域的javascript腳本和另外一個域的內(nèi)容進行交互,所以本文我家里聊聊SpringBoot結(jié)合Vue解決跨域問題幾種處理方案吧

為什么會出現(xiàn)跨域問題?

出于瀏覽器的同源策略限制。 同源策略(Sameoriginpolicy)是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。

可以說Web是構(gòu)建在同源策略基礎之上的,瀏覽器只是針對同源策略的一種實現(xiàn)。同源策略會阻止一個域的javascript腳本和另外一個域的內(nèi)容進行交互。所謂同源(即指在同一個域)就是兩個頁面具有相同的協(xié)議(protocol),主機(host)和端口號(port)。

什么是跨域?

當一個請求url的協(xié)議、域名、端口三者之間任意一個與當前頁面url不同即為跨域。

1 . 兩個相同的源之間瀏覽器默認其是可以相互訪問資源和操作DOM的。

2 .兩個不同的源之間 若想要相互訪問資源或者操作DOM,那么會有一套基礎的安全策略的制約。

后臺解決方案

1.方法一:@CrossOrigin

注意:

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

2、非@CrossOrigin沒有解決跨域請求問題,而是不正確的請求導致無法得到預期的響應,導致瀏覽器端提示跨域問題。

3、在Controller注解上方添加@CrossOrigin注解后,仍然出現(xiàn)跨域問題,解決方案之一就是:

在@RequestMapping注解中沒有指定Get、Post方式,具體指定后,問題解決。

其中@CrossOrigin中的2個參數(shù):

origins : 允許可訪問的域列表

maxAge:準備響應前的緩存持續(xù)的最大時間(以秒為單位)??梢耘渲迷贑ontroller上 也可以配置在方法上。

2. 方法二: 過濾器

package com.sysg.config;


import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


/**
 * @author 77916
 */

@Component
@Order(1)
@WebFilter(filterName = "CoresFilter", urlPatterns = "/*")
public class CoresFilter implements Filter {
    @Override
    public void destroy() {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
            throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        //表示所有的域都可以接受
        response.setHeader("Access-Control-Allow-Origin", "*");
        //允許所有的方法
        response.setHeader("Access-Control-Allow-Methods","POST,GET,DELETE,PUT,OPTIONS");
        //請求得到結(jié)果的有效期
        response.setHeader("Access-Control-Max-Age","3600");
        response.setHeader("Access-Control-Allow-Headers","x-requested-with,Content-Type,access-control-allow-origin,version-info");
        //該值是一個boolean值,表示允許發(fā)送cookie,默認情況下cookie不包含在cores中,設置為true
        response.setHeader("Access-Control-Allow-Credentials","true");
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }
}

web.xml(寫在/webapp/WEB-INF目錄下)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- 跨域問題解決 -->
    <filter>
        <filter-name>CoresFilter</filter-name>
        <filter-class>com.sysg.config.CoresFilter</filter-class>
        <init-param>
            <param-name>IsCross</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CoresFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

???????</web-app>

3.方法三:配置(SpringBoot)

package com.sysg.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedHeaders("*")
                .allowedMethods("GET", "POST", "PUT", "OPTIONS", "DELETE", "PATCH")
                .maxAge(3600);
    }
}

注意:配置類文件一定要寫在啟動類所在的包下,否則不生效?。。?!

到此這篇關(guān)于SpringBoot+Vue解決跨域問題幾種處理方案介紹的文章就介紹到這了,更多相關(guān)SpringBoot Vue解決跨域問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何通過一個注解實現(xiàn)MyBatis字段加解密

    如何通過一個注解實現(xiàn)MyBatis字段加解密

    用戶隱私很重要,因此很多公司開始做數(shù)據(jù)加減密改造,下面這篇文章主要給大家介紹了關(guān)于如何通過一個注解實現(xiàn)MyBatis字段加解密的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • Java圖文分析之繼承內(nèi)存布局

    Java圖文分析之繼承內(nèi)存布局

    這篇文章主要介紹了Java圖文分析之繼承內(nèi)存布局,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的朋友可以參考一下
    2022-09-09
  • 關(guān)于springboot 配置date字段返回時間戳的問題

    關(guān)于springboot 配置date字段返回時間戳的問題

    這篇文章主要介紹了springboot 配置date字段返回時間戳的問題,在springboot2.0后,spring會將Date字段自動給轉(zhuǎn)成UTC字符串了(在沒有配置的情況下),所以date需要轉(zhuǎn)換成時間戳還是yyyy-MM-dd HH:mm:ss,具體解決方法跟隨小編一起看看吧
    2021-07-07
  • 如何用java編寫微信小程序消息提醒推送

    如何用java編寫微信小程序消息提醒推送

    最近參與開發(fā)的項目有用到微信模板消息推送,在這離記錄一下,下面這篇文章主要給大家介紹了關(guān)于如何用java編寫微信小程序消息提醒推送的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • Java中IO和NIO的區(qū)別詳細解析

    Java中IO和NIO的區(qū)別詳細解析

    這篇文章主要介紹了Java中IO和NIO的區(qū)別詳細解析,IO和NIO有相同的作用和目的,但實現(xiàn)方式不同,NIO主要用到的是塊,所以NIO的效率要比IO快不少,需要的朋友可以參考下
    2023-11-11
  • Java利用三目運算符比較三個數(shù)字的大小

    Java利用三目運算符比較三個數(shù)字的大小

    今天小編就為大家分享一篇關(guān)于Java利用三目運算符比較三個數(shù)字的大小,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • SpringBoot實現(xiàn)RBAC權(quán)限校驗模型的示例

    SpringBoot實現(xiàn)RBAC權(quán)限校驗模型的示例

    本文主要介紹了SpringBoot實現(xiàn)RBAC權(quán)限校驗模型的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-04-04
  • Java JDBC API介紹與實現(xiàn)數(shù)據(jù)庫連接池流程

    Java JDBC API介紹與實現(xiàn)數(shù)據(jù)庫連接池流程

    JDBC是指Java數(shù)據(jù)庫連接,是一種標準Java應用編程接口( JAVA API),用來連接 Java 編程語言和廣泛的數(shù)據(jù)庫。從根本上來說,JDBC 是一種規(guī)范,它提供了一套完整的接口,允許便攜式訪問到底層數(shù)據(jù)庫,本篇文章我們來了解JDBC API及數(shù)據(jù)庫連接池
    2022-12-12
  • 深入聊聊Java內(nèi)存泄露問題

    深入聊聊Java內(nèi)存泄露問題

    所謂內(nèi)存泄露就是指一個不再被程序使用的對象或變量一直被占據(jù)在內(nèi)存中,下面這篇文章主要給大家介紹了關(guān)于Java內(nèi)存泄露問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • Java接口返回json如何忽略特定屬性

    Java接口返回json如何忽略特定屬性

    這篇文章主要介紹了Java接口返回json如何忽略特定屬性,通過SimplePropertyPreFilter方式(Json返回),這種寫法,接口返回類型就要求是Json字符串類型,本文通過場景實例代碼相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09

最新評論

康马县| 溆浦县| 镇雄县| 灯塔市| 华坪县| 叶城县| 黎城县| 七台河市| 康马县| 绍兴市| 平阴县| 香格里拉县| 福建省| 红河县| 喀喇沁旗| 荥阳市| 玛曲县| 扎囊县| 永安市| 长寿区| 渭南市| 赣榆县| 梧州市| 鹰潭市| 惠来县| 郓城县| 湖口县| 磐安县| 玉门市| 翁牛特旗| 巨野县| 营口市| 泾源县| 汝南县| 定日县| 乐安县| 恭城| 平顶山市| 名山县| 霍林郭勒市| 无极县|