日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java 跨域問題的處理方式

瀏覽:169日期:2022-08-20 18:47:18

問題

在頁面上要使用 Ajax 請求去獲取另外一個服務的數據,由于瀏覽器的 同源策略,所以直接請求會得到一個 Error。

Failed to load https://www.baidu.com/: No ’Access-Control-Allow-Origin’ header is present on the requested resource. Origin ’http://localhost:3000’ is therefore not allowed access. If an opaque response serves your needs, set the request’s mode to ’no-cors’ to fetch the resource with CORS disabled.

大概就是這樣的一個錯誤,關鍵詞是 Access-Control-Allow-Origin,一般出現這個都是跨域問題。

解決方案

解決跨域問題的方式有很多,但這里之說 Cors 的方案。

在后臺添加一個 Filter 過濾器

/** * 使用自定義的 Filter 攔截器實現跨域請求、 * 適用于所有的 Java Web 項目并且不局限于某個框架 * 注:此處的 @Component 僅為讓 Spring 知道這個 Bean, 不然攔截器不會加載 * * @author rxliuli */public class CustomCorsFilterConfig implements Filter { @Override public void init(FilterConfig filterConfig) { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //允許所有來源 String allowOrigin = '*'; //允許以下請求方法 String allowMethods = 'GET,POST,PUT,DELETE,OPTIONS'; //允許以下請求頭 String allowHeaders = 'Content-Type,X-Token,Authorization'; //允許有認證信息(cookie) String allowCredentials = 'true'; String origin = request.getHeader('Origin'); //此處是為了兼容需要認證信息(cookie)的時候不能設置為 * 的問題 response.setHeader('Access-Control-Allow-Origin', origin == null ? allowOrigin : origin); response.setHeader('Access-Control-Allow-Methods', allowMethods); response.setHeader('Access-Control-Allow-Credentials', allowCredentials); response.setHeader('Access-Control-Allow-Headers', allowHeaders); //處理 OPTIONS 的請求 if ('OPTIONS'.equals(request.getMethod())) { response.setStatus(HttpServletResponse.SC_OK); return; } filterChain.doFilter(request, response); } @Override public void destroy() { }}

在 web.xml 文件中添加攔截器配置(注:如果可能就配置成第一個 Filter)

<!--cors 跨域訪問--><filter> <filter-name>customCorsFilterConfig</filter-name> <filter-class>CustomCorsFilterConfig</filter-class></filter><filter-mapping> <filter-name>customCorsFilterConfig</filter-name> <url-pattern>/*</url-pattern></filter-mapping>

Spring Web 的解決方案

配置一個每次請求都過濾一次的 Filter 就好了

@Configurationpublic class CorsConfig { @Bean public OncePerRequestFilter corsFilter() { return new OncePerRequestFilter() { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {//允許所有來源String allowOrigin = '*';//允許以下請求方法String allowMethods = 'GET,POST,PUT,DELETE,OPTIONS';//允許以下請求頭String allowHeaders = 'Content-Type,X-Token,Authorization';//允許有認證信息(cookie)String allowCredentials = 'true';String origin = request.getHeader('Origin');//此處是為了兼容需要認證信息(cookie)的時候不能設置為 * 的問題response.setHeader('Access-Control-Allow-Origin', origin == null ? allowOrigin : origin);response.setHeader('Access-Control-Allow-Methods', allowMethods);response.setHeader('Access-Control-Allow-Credentials', allowCredentials);response.setHeader('Access-Control-Allow-Headers', allowHeaders);//處理 OPTIONS 的請求if ('OPTIONS'.equals(request.getMethod())) { response.setStatus(HttpServletResponse.SC_OK); return;}filterChain.doFilter(request, response); } }; }}

使用示例

下面是一些簡單的使用 fetch 進行跨域請求的示例:

簡單 fetch 請求,和正常使用 fetch 并無區別

fetch(url) .then(res => res.json()) .then(json => console.log(json)) 表單請求

var fd = new FormData()fd.append(’username’, ’rx’)fd.append(’password’, ’rx’)fetch(url, { method: ’POST’, body: fd,}) .then(res => res.json()) .then(json => console.log(json)) 需要認證的請求

fetch(url, { /** * 關鍵就在這里,代表用戶是否應該在跨域的情況下發送 cookies 和 HTTP Basic authentication 等驗信息以及服務端能否返回 Set-Cookie(服務端 Session 需要使用這個向 cookie 中設置 sessionId)。 * 包含三個可選值:omit(從不發送), same-origin(同源才發送), include(總會發送) * 參考鏈接:<https://developer.mozilla.org/zh-CN/docs/Web/API/Request/credentials> */ credentials: ’include’,}) .then(res => res.json()) .then(json => console.log(json))

注:如果想要服務端返回 Set-Cookie(SessionId 也需要通過這個響應屬性去設置) 就必須設置這個請求參數!

那么,之后在前端跨域請求的時候就可以愉快地玩耍啦(v^_^)v

以上就是Java 跨域問題的處理方式的詳細內容,更多關于Java 跨域的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲性色视频| 亚洲欧洲一区| 日韩欧美中文在线观看| 亚洲精品1区| 蘑菇福利视频一区播放| 99xxxx成人网| 亚洲欧美伊人| 蜜桃伊人久久| 日韩在线a电影| 亚洲欧洲美洲国产香蕉| 亚洲精品极品| 欧美极品中文字幕| 日韩av免费大片| 99久久婷婷| 亚洲欧洲国产精品一区| 国产精品毛片aⅴ一区二区三区| 久久精品国产久精国产| 91精品xxx在线观看| 黄色亚洲免费| 欧美亚洲综合视频| 日韩一区三区| 亚洲激情社区| 国产亚洲欧美日韩在线观看一区二区| 精品国产午夜| 日韩午夜在线| 精品国产精品国产偷麻豆| 99精品小视频| 日韩av二区在线播放| 久久久久久色 | 亚洲a成人v| 久久99久久人婷婷精品综合| 日本а中文在线天堂| 激情91久久| 欧美日韩一区二区国产| 国产欧洲在线| 日韩国产一二三区| 日韩电影免费网站| 亚洲精一区二区三区| 国产在线日韩精品| 久久www成人_看片免费不卡| 国产精品免费99久久久| 亚洲成人三区| 欧美亚洲福利| 国产一区亚洲| 国产精品超碰| 久久先锋影音| 中文字幕成在线观看| 综合视频一区| 日韩网站中文字幕| 国产欧美自拍一区| 亚洲一区日韩| 欧美好骚综合网| 亚洲精品自拍| 久久在线电影| 毛片不卡一区二区| 亚洲网址在线观看| 99久久视频| 国产欧美激情| 久久www成人_看片免费不卡| 黄色aa久久| 欧美日韩18| 国产亚洲毛片| 日本免费久久| 国产调教精品| 亚洲资源网站| 成人午夜精品| 国产精品任我爽爆在线播放 | 久久精品av| 国产精品免费大片| 亚久久调教视频| 一区二区亚洲精品| 日韩电影免费网址| 精品国产一区二区三区2021| 日韩国产在线不卡视频| 欧美日韩精品免费观看视频完整| 九九久久国产| 国产欧美日韩在线观看视频| 蜜桃视频一区二区三区在线观看| 日韩福利一区| 欧美极品一区二区三区| 日韩精品欧美大片| 免费在线观看一区二区三区| 91欧美日韩| 精品视频国产| 精品视频自拍| 久久久精品区| 美女久久久久久| 麻豆久久久久久| 久久影视三级福利片| 91伊人久久| 久久狠狠久久| 久久国内精品自在自线400部| 在线精品视频一区| 久久国产精品99国产| 亚洲精品极品少妇16p| 免费一二一二在线视频| 成人日韩av| 欧美激情一区| 麻豆一区二区三| 国产专区精品| 韩国久久久久久| 亚洲v在线看| 国产综合色产| 国产亚洲精品v| 亚洲男人在线| 国产日韩免费| 成人影视亚洲图片在线| 日产精品一区| 午夜国产欧美理论在线播放| 欧美日韩国产高清| 综合日韩在线| 欧美激情视频一区二区三区免费 | 欧美日韩免费观看视频| 99久久久久久中文字幕一区| 欧美在线亚洲| 深夜福利一区| 美女视频免费精品| 播放一区二区| 免费精品视频最新在线| 欧美亚洲三区| 日韩免费看片| 久久国产精品99国产| 91嫩草精品| 精品一区二区三区中文字幕视频| 日韩精品dvd| 鲁大师影院一区二区三区| 日韩精品导航| 麻豆理论在线观看| 在线精品一区二区| 国产一区丝袜| 亚洲欧美日本国产专区一区| 欧美精品国产白浆久久久久| 欧美激情另类| 国产精品社区| 久久一区亚洲| 亚洲欧美日韩专区| 麻豆久久久久久| 午夜欧美精品| 日韩av电影一区| 日韩中文在线电影| 日本在线不卡视频| 日韩中文影院| 久久国产尿小便嘘嘘| 另类专区亚洲| 日韩三级精品| 日韩成人亚洲| 日韩av在线免费观看不卡| 福利一区二区三区视频在线观看| 精品91久久久久| 精品国产午夜| 亚洲精品看片| 亚洲午夜91| 开心激情综合| 久久av在线| 蜜桃成人精品| 国产劲爆久久| 亚洲影视一区二区三区| 日本免费一区二区三区四区| 91欧美极品| 久久国产精品毛片| 亚洲1234区| 久久久久黄色| 啪啪亚洲精品| 蜜桃av一区二区在线观看| 91视频精品| 91成人在线精品视频| 国产高清一区二区| 国产精品成人a在线观看| 亚洲精品美女91| 久久久久久久久久久9不雅视频| 国产精品密蕾丝视频下载| 免费日韩视频| 免费av一区| 日韩中文首页| 久久69成人| 欧美日韩一区二区三区在线电影| 日韩午夜精品| 国产一区清纯| 久久久蜜桃一区二区人| 精品视频免费| 欧美黄色一区二区| 欧美视频一区| 日韩欧美久久| 视频在线观看一区| 999久久久亚洲| 日本美女一区| 国产资源在线观看入口av| 久久av偷拍| 欧美专区一区| 色8久久久久| 亚洲欧美在线专区| 天堂av在线一区| 在线亚洲一区| 黄色国产精品| 亚洲在线观看| 欧美日韩国产高清| 99热免费精品| 男人的天堂久久精品| 国产视频一区免费看| 亚洲精品一区二区在线看|