码上敲享录 > 互联网笔记 > No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'x' is therefor

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'x' is therefor

上一章章节目录下一章 2020-01-07已有3638人阅读 评论(0)

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'xxx' is therefore not allowed


解决方法:

第一种.如果重复设置了跨域,也就是tomcat或者nginx设置了跨域,服务代码也设置跨域那么设置就没效果了


第二种.使用spring的@CrossOrigin注解写在要跨越的类的上面,http://123.com和http://456.com是请求方的域名

@CrossOrigin(origins = {"http://123.com","http://456.com"})


第三种.如果被请求方通过nginx代理,那么可以在nginx中配置文件中被请求方的server节点中添加:

add_header Access-Control-Allow-Origin *;


第四种.也可以在代码中添加过滤器

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.cors.CorsConfiguration;

import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

import org.springframework.web.filter.CorsFilter;

@Configuration

public class CorsConfig {

   private static Logger logger = LoggerFactory.getLogger(CorsConfig.class);


   private CorsConfiguration buildConfig() {

       CorsConfiguration corsConfiguration = new CorsConfiguration();

       //  你需要跨域的地址  注意这里的 127.0.0.1 != localhost

       // * 表示对所有的地址都可以访问

       corsConfiguration.addAllowedOrigin("*");

       //  跨域的请求头

       corsConfiguration.addAllowedHeader("*"); // 2

       //  跨域的请求方法

       corsConfiguration.addAllowedMethod("*"); // 3

       //加上了这一句,大致意思是可以携带 cookie

       //最终的结果是可以 在跨域请求的时候获取同一个 session

       corsConfiguration.setAllowCredentials(true);

       return corsConfiguration;

   }

   @Bean

   public CorsFilter corsFilter() {

       UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

       //配置 可以访问的地址

       source.registerCorsConfiguration("/**", buildConfig()); // 4

       return new CorsFilter(source);

   }


}


0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交