加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react 使用 fetch 向spring mvc后台发起ajax 请求 options 403

发布时间:2020-12-15 03:26:37 所属栏目:百科 来源:网络整理
导读:http://www.tuicool.com/articles/3UBzIbb spring mvc 支持options方法 增加如下配置: init-param param-namedispatchOptionsRequest/param-name param-valuetrue/param-value /init-param 加在springdispatcher 里面 servlet servlet-namespringdispatcher

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

spring mvc 支持options方法

增加如下配置:

<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; } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读