Access-Control-Allow-Origin跨域请求处理

今天在看新项目的时候,发现很多的   Controller 中都有一个

            response.setHeader("Access-Control-Allow-Origin","*"); 的响应消息头的设置,

     一时有些摸不着头脑,之后就求助与互联网,原来这是设置前端跨域请求的(请原谅我原来只用了jsonp这种ajax跨域请求方式),

    通过观看博客  :https://blog.csdn.net/hehexiaoxia/article/details/61916737  ,

  了解到,   只要返回了,  response.setHeader("Access-Control-Allow-Origin","*"); 形式的消息头, 就能让所有的域名的脚本访问本资源,

    如果是返回了 response.setHeader("Access-Control-Allow-Origin","www.hehe.jaja.com");  则只能由该域名下的脚本访问我的资源。。

 

   另外我们还可以通过 在  web.xml  中配置   cors filter  的方法来设置    

                 Access-Control-Allow-Origin跨域 问题

 

代码如下 :

<filter>
        <filter-name>CorsFilter</filter-name>
        <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
          <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,auth</param-value>
        </init-param>
    </filter>
View Code

       但是在一些新项目中并不能配置   web.xml,   所以还是使用    返回相应消息头的方式来的好

posted @ 2018-03-31 15:50  阿肯新  阅读(346)  评论(0编辑  收藏  举报