国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

前端后分離Ajax跨域請求保證Session一致

rockswang / 1134人閱讀

摘要:前后端分離的項目,使用請求一般都出現跨域的問題。跨域的時候所創建的是不會被瀏覽器保存下來的。所以每次進行跨域請求時,服務器都認為不是同一個瀏覽器所發起的請求,也會不一樣。以下將介紹如何保證一致。

前后端分離的項目,使用Ajax請求一般都出現跨域的問題。
跨域的時候所創建的session是不會被瀏覽器保存下來的。所以每次進行跨域請求時,服務器都認為不是同一個瀏覽器所發起的請求,session也會不一樣。以下將介紹如何保證session一致。

前端Ajax請求

$.ajax({
    url:url,
    
    xhrFields: {
       withCredentials: true
    },
    crossDomain: true,
    
    success:function() {
    },
    error:function() {
    }
});

后端構建一個攔截器,對需要跨域訪問的request頭部重寫
如:

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    HttpServletResponse response= (HttpServletResponse) servletResponse;
    HttpServletRequest request=(HttpServletRequest)servletRequest;
    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
    response.setHeader("Access-Control-Allow-Credentials", "true");
    response.setHeader("XDomainRequestAllowed","1");
    filterChain.doFilter(servletRequest,servletResponse);
}

另外Spring boot的項目可以添加攔截配置,以下:

@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class AuthCorsFilter extends CorsFilter {

    public AuthCorsFilter() {
        super(configurationSource());
    }

    private static UrlBasedCorsConfigurationSource configurationSource() {
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true);
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");
        config.addAllowedMethod("*");
        config.setAllowCredentials(true);
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);
        return source;
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67944.html

相關文章

  • 分離下的CAS跨域流程分析

    摘要:這種情況通常發生在反向代理的時候,前端發起請求代理服務器,代理服務器發起請求到,這時候就容易導致域名不一致,請一定要注意這點。 寫在最前 前后端分離其實有兩類: 開發階段使用dev-server,生產階段是打包成靜態文件整個放入后端項目中。 開發階段使用dev-server,生產階段是打包成靜態文件放入單獨的靜態資源服務器中,如nginx。 這兩種方案最大的區別就是生產階段。由于第...

    ckllj 評論0 收藏0
  • 分離下的CAS跨域流程分析

    摘要:這種情況通常發生在反向代理的時候,前端發起請求代理服務器,代理服務器發起請求到,這時候就容易導致域名不一致,請一定要注意這點。 寫在最前 前后端分離其實有兩類: 開發階段使用dev-server,生產階段是打包成靜態文件整個放入后端項目中。 開發階段使用dev-server,生產階段是打包成靜態文件放入單獨的靜態資源服務器中,如nginx。 這兩種方案最大的區別就是生產階段。由于第...

    DevTalking 評論0 收藏0
  • 分離下的CAS跨域流程分析

    摘要:這種情況通常發生在反向代理的時候,前端發起請求代理服務器,代理服務器發起請求到,這時候就容易導致域名不一致,請一定要注意這點。 寫在最前 前后端分離其實有兩類: 開發階段使用dev-server,生產階段是打包成靜態文件整個放入后端項目中。 開發階段使用dev-server,生產階段是打包成靜態文件放入單獨的靜態資源服務器中,如nginx。 這兩種方案最大的區別就是生產階段。由于第...

    jay_tian 評論0 收藏0
  • Nginx反向代理解決前端聯調跨域問題

    摘要:反向代理前后端聯調跨域什么是跨域跨域,指的是瀏覽器不能執行其他網站的腳本。這時候,用反向代理實現跨域,是最簡單的跨域方式。 keywords: Nginx反向代理 前后端聯調 跨域 1.什么是跨域 跨域,指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對javascript施加的安全限制。 所謂同源是指,域名,協議,端口都相同。瀏覽器執行javascrip...

    QiuyueZhong 評論0 收藏0
  • 分離架構下CSRF防御機制

    摘要:延伸這里再順便提一下,新架構下的防御。不過,還有一點值得一提前后端分離框架下,路由由控制我自己要獲取的后端參數和需要用在業務邏輯的參數,在主觀上前端同學更好把握一些。 原文: http://feclub.cn/post/content... 背景 1、什么是CSRF攻擊? 這里不再介紹CSRF,已經了解CSRF原理的同學可以直接跳到:3、前后端分離下有何不同?。 不太了解的同學可以看這...

    Moxmi 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<