增加跨域功能

以Filter的方式增加跨域功能,直接取得请求头的Origin参数,作为Access-Control-Allow-Origin的值。
This commit is contained in:
Kane Wang 2022-10-09 10:31:13 +08:00
parent 93b556f09f
commit ded2b3e06d
4 changed files with 56 additions and 10 deletions

View File

@ -2,7 +2,7 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-09-28 15:47:02 * @Date: 2022-09-28 15:47:02
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2022-09-30 14:52:00 * @LastEditTime: 2022-10-09 10:31:02
* @FilePath: \car_dealer\src\main\java\com\cpic\xim\car_dealer\controllers\fileupload\FileUploadController.java * @FilePath: \car_dealer\src\main\java\com\cpic\xim\car_dealer\controllers\fileupload\FileUploadController.java
* @Description: * @Description:
* *
@ -45,16 +45,9 @@ public class FileUploadController
*****************************************************/ *****************************************************/
@RequestMapping( path = "/upload_file.do") @RequestMapping( path = "/upload_file.do")
@ResponseBody @ResponseBody
@CrossOrigin
public FileUploadResult uploadFile( HttpServletRequest request, HttpServletResponse response, public FileUploadResult uploadFile( HttpServletRequest request, HttpServletResponse response,
MultipartFile uploadFile ) throws IllegalSelectorException, IOException MultipartFile uploadFile ) throws IllegalSelectorException, IOException
{ {
// response.setContentType( "text/json;charset=UTF-8" );
// response.setHeader( "Access-Control-Allow-Origin", "*" );
// response.setHeader( "Access-Control-Allow-Methods", "GET,POST" );
request.getCookies();
FileUploadResult result = new FileUploadResult(); FileUploadResult result = new FileUploadResult();
String sessionID = request.getSession().getId(); String sessionID = request.getSession().getId();

View File

@ -0,0 +1,43 @@
/*
* @Author: Kane
* @Date: 2022-10-09 09:32:33
* @LastEditors: Kane
* @LastEditTime: 2022-10-09 09:43:01
* @FilePath: \car_dealer\src\main\java\com\cpic\xim\car_dealer\filters\CrosFilter.java
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.car_dealer.filters;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CrosFilter implements Filter
{
@Override
public void doFilter( ServletRequest req, ServletResponse resp, FilterChain chain )
throws ServletException, IOException
{
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
String originHeader = request.getHeader( "Origin" );
response.setHeader( "Access-Control-Allow-Origin", originHeader );
response.setHeader( "Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE" );
response.setHeader( "Access-Control-Max-Age", "0" );
response.setHeader( "Access-Control-Allow-Headers",
"Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token" );
response.setHeader( "Access-Control-Allow-Credentials", "true" );
response.setHeader( "XDomainRequestAllowed", "1" );
response.setHeader( "XDomainRequestAllowed", "1" );
chain.doFilter( request, response );
}
}

View File

@ -18,4 +18,12 @@
<url-pattern>*.do</url-pattern> <url-pattern>*.do</url-pattern>
</servlet-mapping> </servlet-mapping>
<filter>
<filter-name>cros-filter</filter-name>
<filter-class>com.cpic.xim.car_dealer.filters.CrosFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cros-filter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
</web-app> </web-app>

View File

@ -2,7 +2,7 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-09-29 16:33:30 * @Date: 2022-09-29 16:33:30
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2022-09-30 21:34:30 * @LastEditTime: 2022-10-09 10:24:17
* @FilePath: \car_dealer\src\main\webapp\file_upload.html * @FilePath: \car_dealer\src\main\webapp\file_upload.html
* @Description: * @Description:
* *
@ -51,7 +51,9 @@
</div> </div>
</body> </body>
<script> <script>
const reqeustURL = "upload/upload_file.do"; //const reqeustURL = "upload/upload_file.do";
const reqeustURL =
"http://localhost:8080/cardealer/upload/upload_file.do";
const btnUpload = document.getElementById("btnUpload"); const btnUpload = document.getElementById("btnUpload");
function fileUploadChange() { function fileUploadChange() {