跨域访问的解决方法

  • 跨域访问是什么,百度一下你就知道。

  • 什么情况下能确定遇到跨域问题了呢?

是使用js向服务起发送的请求

没有返回结果,F12后发现错误信息包含这个:XMLHttpRequest cannot load http://……. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://……' is therefore not allowed access.

服务器控制台,发送的请求是get或者post,但显示的是options。为什么变了呢?通过OPTIONS请求握手一次的方式实现跨根域发送请求,就是先用它了试试能请求不。


因为懒,一直想找最简单的办法,所以简单可行的主要有以下三个方法:

  • 给响应添加response.setHeader('Access-Control-Allow-Origin:*');,这个最简单了。但是在公司的eclipse封装后的平台上,我们没找到这个应该放在哪里…………
  • Spring MVC 从4.2版本开始增加了对CORS的支持,可以使用@CrossOrigin注解进行细粒度的配置。同理,不知道用在哪里……
  • Tomcat下的配置,这个相比上两个要单独下载jar文件,但是更容易操作了。
    下载cors-filter-1.7.jar,Java-property-utils-1.9.jar这两个库文件,放到lib目录下。(可在http://search.maven.org上查询并下载。)工程项目中web.xml中的配置如下:

    CORS
    com.thetransactioncompany.cors.CORSFilter
    
     cors.allowOrigin
        *
    
    
     cors.supportedMethods
        GET, POST, HEAD, PUT, DELETE
    
    
     cors.supportedHeaders
        Accept, Origin, X-Requested-With, Content-Type, Last-Modified
    
    
        cors.exposedHeaders
        Set-Cookie
    
    
        cors.supportsCredentials
        true
    


    CORS
    /*

你可能感兴趣的:(跨域访问的解决方法)