zoukankan      html  css  js  c++  java
  • tomcat7.0配置CORS(跨域资源共享)

    平时我们做前台页面时可能会遇到浏览器以下提示(浏览器控制台):

        已阻止跨源请求:同源策略禁止读取位于 http://xxx.xxx.com 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')

    这种情况就是跨域请求被阻止,这样可能会导致当前网站的css、js 、ajax请求、font字体等资源出现无法正常访问的问题,这时就涉及到“跨域资源共享”这个问题了。

    以下列举跨域问题的几种情形:

    URL

    说明

    是否允许通信

    http://www.a.com/a.js
    http://www.a.com/b.js

    同一域名下

    允许

    http://www.a.com/lab/a.js
    http://www.a.com/script/b.js

    同一域名下不同文件夹

    允许

    http://www.a.com:8000/a.js
    http://www.a.com/b.js

    同一域名,不同端口

    不允许

    http://www.a.com/a.js
    http://www.a.com/b.js

    同一域名,不同协议

    不允许

    http://www.a.com/a.js
    http://192.168.1.1/b.js

    域名和域名对应ip

    不允许

    http://www.a.com/a.js
    http://home.a.com/b.js

    主域相同,子域不同

    不允许

    http://www.a.com/a.js
    http://.a.com/b.js

    同一域名,不同二级域名(同上)

    不允许(cookie这种情况下也不允许访问)

    http://www.cnblogs.com/a.js
    http://www.a.com/b.js

    不同域名

    不允许

    如果是PHP等语言,这个问题貌似很好解决,只要一行代码就可以搞定,那么Java呢?如何在不修改代码的情况下,实现跨域资源共享?请往下看:

    CORS(跨域资源共享)介绍:

    CORS(Cross-Origin Resource Sharing) 跨域资源共享

    全称:Cross-Origin Resource Sharing

    中文意思:跨域资源共享

    它 在维基百科上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源。而这种访问是被同源策略所禁止的。CORS系统定义了一 种浏览器和服务器交互的方式来确定是否允许跨域请求。 它是一个妥协,有更大的灵活性,但比起简单地允许所有这些的要求来说更加安全。

    Tomcat下的项目的配置:

    首先需要下载cors-filter-1.7.jar,java-property-utils-1.9.jar这两个jar包;

    然后配置工程项目中web.xml文件,配置信息如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
        <filter>       
           <filter-name>CORS</filter-name>
           <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
           <init-param>
            <param-name>cors.allowOrigin</param-name>
               <param-value>*</param-value>
           </init-param>
           <init-param>
            <param-name>cors.supportedMethods</param-name>
               <param-value>GET, POST, HEAD, PUT, DELETE</param-value>
           </init-param>
           <init-param>
            <param-name>cors.supportedHeaders</param-name>
               <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
           </init-param>
           <init-param>
               <param-name>cors.exposedHeaders</param-name>
               <param-value>Set-Cookie</param-value>
           </init-param>
           <init-param>
               <param-name>cors.supportsCredentials</param-name>
               <param-value>true</param-value>
           </init-param>
       </filter>
      
       <filter-mapping>
           <filter-name>CORS</filter-name>
           <url-pattern>/*</url-pattern>
       </filter-mapping>
     
  • 相关阅读:
    CGI(通用网关接口)
    PHP简介
    SEO搜索引擎优化/URL
    使用表单标签,与用户交互
    认识<img>标签,为网页插入图片
    使用mailto在网页中链接Email地址
    使用<a>标签,链接到另一个页面
    1037. Magic Coupon (25)
    1038. Recover the Smallest Number (30)
    1034. Head of a Gang (30) -string离散化 -map应用 -并查集
  • 原文地址:https://www.cnblogs.com/kabi/p/6090202.html
Copyright © 2011-2022 走看看