博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react 使用 fetch 向spring mvc后台发起ajax 请求 options 403
阅读量:6913 次
发布时间:2019-06-27

本文共 2580 字,大约阅读时间需要 8 分钟。

hot3.png

http://www.tuicool.com/articles/3UBzIbb

 

增加如下配置:

<init-param>  

    <param-name>dispatchOptionsRequest</param-name>  
    <param-value>true</param-value>  
</init-param>  
 

加在springdispatcher 里面

<servlet>  

    <servlet-name>springdispatcher</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <init-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>classpath:springMvc-viewresolver.xml</param-value>  
    </init-param>  
    <init-param>  
        <param-name>dispatchOptionsRequest</param-name>  
        <param-value>true</param-value>  
    </init-param>  
    <load-on-startup>1</load-on-startup>  
</servlet>  

 

过滤器代码

package com.allcam.andedu.abc.filter;

import java.io.IOException;

import java.util.ArrayList;
import java.util.List;

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 com.allcam.andedu.abc.pojo.UserCache;

public class SystemFilter implements Filter

{
    
    private static final List<String> STRINGS = new ArrayList<String>();
    
    private static final String UTF8_CODE = "UTF-8";
    static
    {
        STRINGS.add("jsp");
        STRINGS.add("js");
        STRINGS.add("css");
        STRINGS.add("images");
        STRINGS.add("backRes");
        STRINGS.add("anon");
        STRINGS.add("ckplayer");
        STRINGS.add("htm");
        STRINGS.add("ico");
        STRINGS.add("uploadImage");
    }
    
    @Override
    public void destroy()
    {
        
    }
    
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain)
        throws IOException, ServletException
    {
        HttpServletRequest request = (HttpServletRequest)servletRequest;
        
        HttpServletResponse response = (HttpServletResponse)servletResponse;
        // 指定允许其他域名访问
        response.setHeader("Access-Control-Allow-Origin", "*");
        // 响应类型
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        // 响应头设置
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, x-requested-with, X-Custom-Header");
        
        if ("OPTIONS".equals(request.getMethod()))
        {
            response.setStatus(204);
        }
        
        // response.setHeader("Access-Control-Max-Age", "3600");
        
        request.setCharacterEncoding(UTF8_CODE);
        response.setCharacterEncoding(UTF8_CODE);
        chain.doFilter(request, response);
 
    }
    
    @Override
    public void init(FilterConfig filterConfig)
        throws ServletException
    {
    }
    
    public boolean isAuth(String url)
    {
        for (String string : STRINGS)
        {
            if (url.contains(string))
            {
                return true;
            }
        }
        return false;
    }
}
 

 

 

转载于:https://my.oschina.net/yizhichao/blog/718643

你可能感兴趣的文章
图文说明虚拟机的几种网络模式
查看>>
将 instance 连接到 first_local_net - 每天5分钟玩转 OpenStack(82)
查看>>
Ubuntu屏幕截图快捷键知多少
查看>>
60佳优秀的 Photoshop 网页制作教程【下篇】
查看>>
JQuery Select多选插件实现
查看>>
1-Ictclas50分词系统ForJava
查看>>
Tomcat部署servlet小应用无法找到相应的servlet类的问题可能原因
查看>>
Coding and Paper Letter(七)
查看>>
51CTO篮球俱乐部精彩集锦(5月9日)
查看>>
java实现正则表达式到NFA的转换
查看>>
python-54: 验证码登陆尝试
查看>>
Fedora 11 安装指南-06
查看>>
C#中的异步和多线程
查看>>
归并非递归排序
查看>>
我的友情链接
查看>>
HeadFirst设计模式(五) - 单例模式
查看>>
executeQuery、executeUpdate 和 execute返回值
查看>>
Java利用Tomcat作为服务器与Android的Http通信
查看>>
HDP-2.6.5 & ambari-2.6.2 安装配置
查看>>
一天一点T-SQL:关于分区表(二)
查看>>