美文网首页开源
访问Geoserver rest跨域问题解决

访问Geoserver rest跨域问题解决

作者: 828a8863cef9 | 来源:发表于2018-06-01 15:50 被阅读7次

    问题描述:通过js访问geoserver提供的rest接口,返回403

    解决方法:(1)geoserver/WEB-INF/web.xml下加如下配置:

     <filter>
          <filter-name>CorsFilter</filter-name>
          <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
          <init-param>
            <param-name>cors.allowed.origins</param-name>
            <param-value>*</param-value>
          </init-param>
          <init-param>
            <param-name>cors.allowed.methods</param-name>
            <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
          </init-param>
          <init-param>
            <param-name>cors.allowed.headers</param-name>
            <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization</param-value>
          </init-param>
          <init-param>
            <param-name>cors.exposed.headers</param-name>
            <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
          </init-param>
          <init-param>
            <param-name>cors.support.credentials</param-name>
            <param-value>true</param-value>
          </init-param>
          <init-param>
            <param-name>cors.preflight.maxage</param-name>
            <param-value>10</param-value>
          </init-param>
        </filter>
        <filter-mapping>
          <filter-name>CorsFilter</filter-name>
          <url-pattern>/*</url-pattern>
        </filter-mapping>
    

    cors.allowed.origins:允许访问资源的起源列表。可以指定一个*以允许从任何来源访问资源。否则,可以提供逗号分隔的白名单。

    cors.allowed.headers:这个用于控制请求头中所带的项,这个也会在预请求中作为Access-Control-Allow-Headers头的内容。

    cors.exposed.headers:这里面存着允许被暴露来的HTTP请求头,在Access-Control-Expose-Headers头中会显示。

    cors.preflight.maxage:这个用秒计时,用于浏览器来缓存预请求的结果。这个会被包含在预请求结果的Access-Control-Max-Age头中。一个复制会阻止缓存。

    cors.support.credentials:是否支持缓存用户凭据,他在 Access-Control-Allow-Credentials头中被暴露出来。它帮助浏览器确定是否可以使用凭据来进行实际请求

    cors.request.decorate:要控制是否应该向HttpServletRequest对象添加CORS特定属性的标志。

    (2)js中调用rest时,headers添加'Authorization'

    相关文章

      网友评论

        本文标题:访问Geoserver rest跨域问题解决

        本文链接:https://www.haomeiwen.com/subject/yblajftx.html