一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|

服務(wù)器之家 - 編程語言 - JAVA教程 - Cors實(shí)現(xiàn)java后端完全跨域?qū)嵗?

Cors實(shí)現(xiàn)java后端完全跨域?qū)嵗?/h1>

2020-10-31 23:35lifereader JAVA教程

本篇文章主要介紹了Cors實(shí)現(xiàn)java后端完全跨域?qū)嵗【幱X得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

這篇文章很詳細(xì)的介紹了JS的跨域,給出的解決方案是springboot的方式,假如不用spring boot 或者 spring版本低于4.2就需要自己實(shí)現(xiàn);

參考了spring boot的實(shí)現(xiàn)方式,并有所簡化,代碼如下:

java" id="highlighter_233447">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package com.lvluo.web.filter.CorsFilter;
 
import java.io.IOException;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.springframework.http.HttpHeaders;
 
public class CorsFilter implements Filter {
 
 public static final String ACCESS_CONTROL_REQUEST_METHOD = "Access-Control-Request-Method";
 
 public static final String OPTIONS = "OPTIONS";
 
 public void doFilter(ServletRequest request, ServletResponse response,
  FilterChain chain) throws IOException, ServletException {
 
 HttpServletRequest httpRequest = (HttpServletRequest) request;
 HttpServletResponse httpResponse = (HttpServletResponse) response;
 
 if (isCorsRequest(httpRequest)) {
  httpResponse.setHeader("Access-Control-Allow-Origin", "*");
  httpResponse.setHeader("Access-Control-Allow-Methods",
   "POST, GET, PUT, DELETE");
  httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
  // response.setIntHeader("Access-Control-Max-Age", 1728000);
  httpResponse
   .setHeader(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept, Accept-Encoding, Authorization");
  if (isPreFlightRequest(httpRequest)) {
  return;
  }
 }
 chain.doFilter(request, response);
 }
 
 public void init(FilterConfig filterConfig) {
 }
 
 public void destroy() {
 }
 
 public boolean isCorsRequest(HttpServletRequest request) {
 return (request.getHeader(HttpHeaders.ORIGIN) != null);
 }
 
 /**
 * Returns {@code true} if the request is a valid CORS pre-flight one.
 */
 public boolean isPreFlightRequest(HttpServletRequest request) {
 return (isCorsRequest(request) && OPTIONS.equals(request.getMethod()) && request
  .getHeader(ACCESS_CONTROL_REQUEST_METHOD) != null);
 }
}

接著在web.xml配置filter即可

?
1
2
3
4
5
6
7
8
<filter>
 <filter-name>corsFilter</filter-name>
 <filter-class>com.lvluo.web.filter.CorsFilter</filter-class>
</filter>
<filter-mapping>
 <filter-name>corsFilter</filter-name>
 <url-pattern>/api/*</url-pattern>
</filter-mapping>

前端測試的JS代碼,其中客戶端的

?
1
2
3
4
5
6
7
8
9
10
11
$.ajax({
  headers : {
   'Authorization' :'Bearer iBoxSO9QdrHR0'
  },
  url: 'http://localhost:8080/service/api/ping',
  type: 'GET',
  dataType: 'json',
  success : function(result){
   $("#result").html(result.code);
  }
  })

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://my.oschina.net/lifereader/blog/909524

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 瘦老汉gay| 亚洲欧美一区二区三区在线观看 | 免费亚洲视频在线观看 | 精品久久久久久久久久久久久久久 | 高清国语自产拍免费视频国产 | 亚洲精品视频免费在线观看 | 满溢游泳池免费土豪全集下拉版 | 草草在线免费视频 | 草莓视频榴莲视频 | 顶级欧美做受xxx000大乳 | 午夜精品久久久内射近拍高清 | 欧美va在线观看 | 久久久久久久99精品免费观看 | 青草国产在线视频 | 91会员 | 热伊人99re久久精品最新地 | 欧美肥胖老妇做爰变态 | 亚洲精品国产国语 | 911精品国产亚洲日本美国韩国 | 欧美一级高清片免费一级 | 亚洲国产在线99视频 | 高清在线免费观看 | 精品国产中文字幕在线视频 | 午夜办公室在线观看高清电影 | 久久亚洲午夜牛牛影视 | 日韩久久中文字幕 | 海角社区在线视频 | 污到湿的爽文免费阅读 | 日本老熟老太hd | 亚洲高清无码在线 视频 | 俄罗斯一级成人毛片 | 涩情主播在线翻车 | 亚洲欧美久久久久久久久久爽网站 | 国产第一草草影院 | 三级无删减高清在线影院 | 精品国产美女福利在线 | 草莓香蕉榴莲丝瓜秋葵绿巨人在线看 | 亚洲精品成人456在线播放 | 大香线一本 | 欧美一级片在线免费观看 | 小舞同人18av黄漫网站 |