405 跨域问题的解决

 
在新同事的建议下,我们开发的接口统一改为符合 restful 规范的形式。
尝试改造后,前端同事以 DELETE 方式请求接口时,出现了 405 (跨域)错误。
 
由于在之前的工程中有同事解决过这个问题,所以跟他请教了一下,得到的答案是:
“在原工程中,搜索 ‘CorsFilter’ 就行 ”。
 
按照他的提示在原工程的 web.xml 文件中找到了相关配置,但后来发现当前工程中也有相同的配置。
 
在详细看了配置信息之后,我做了如下的尝试:
在其中的
 
<init-param>
  <param-name>cors.allowed.methodsparam-name>
  <param-value>GET,POST,HEAD,OPTIONS,PUTparam-value>
init-param>
 
PUT 之后加上 DELETE:
 
<init-param>
  <param-name>cors.allowed.methodsparam-name>
  <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE,PATCHparam-value>
init-param>

 

问题解决
 
 
以下是配置详情:

<filter>
        <filter-name>CorsFilterfilter-name>
        <filter-class>org.apache.catalina.filters.CorsFilterfilter-class>
        <init-param>
            <param-name>cors.allowed.originsparam-name>
            <param-value>*param-value>
        init-param>
        <init-param>
            <param-name>cors.allowed.methodsparam-name>
            <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE,PATCHparam-value>
        init-param>
        <init-param>
            <param-name>cors.allowed.headersparam-name>
            <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headersparam-value>
        init-param>
        <init-param>
            <param-name>cors.exposed.headersparam-name>
            <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentialsparam-value>
        init-param>
        <init-param>
            <param-name>cors.support.credentialsparam-name>
            <param-value>trueparam-value>
        init-param>
        <init-param>
            <param-name>cors.preflight.maxageparam-name>
            <param-value>10param-value>
        init-param>
    filter>

 

 
 

转载于:https://www.cnblogs.com/stone94/p/8596949.html

你可能感兴趣的:(405 跨域问题的解决)