想不到的网站域名,女生学电子商务专业好吗,外贸网站seo推广方案,国家建设协会官方网站跨域跨域#xff1a;指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的#xff0c;是浏览器对javascript施加的安全限制。例如#xff1a;a页面想获取b页面资源#xff0c;如果a、b页面的协议、域名、端口、子域名不同#xff0c;所进行的访问行动都是跨…跨域跨域指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的是浏览器对javascript施加的安全限制。例如a页面想获取b页面资源如果a、b页面的协议、域名、端口、子域名不同所进行的访问行动都是跨域的而浏览器为了安全问题一般都限制了跨域访问也就是不允许跨域请求资源。注意跨域限制访问其实是浏览器的限制。同源策略是指协议域名端口都要相同其中有一个不同都会产生跨域解决方式服务端设置Response Header(响应头部)的Access-Control-Allow-Origin在需要跨域访问的类和方法中设置允许跨域访问(如Spring中使用CrossOrigin注解)继承使用Spring Web的CorsFilter(适用于Spring MVC、Spring Boot)实现WebMvcConfigurer接口(适用于Spring Boot)使用Filter方式进行设置使用Filter过滤器来过滤服务请求向请求端设置Response Header(响应头部)的Access-Control-Allow-Origin属性声明允许跨域访问。WebFilterpublic class CorsFilter implements Filter {Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {HttpServletResponse response (HttpServletResponse) res;response.setHeader(Access-Control-Allow-Origin, *);response.setHeader(Access-Control-Allow-Methods, *);response.setHeader(Access-Control-Max-Age, 3600);response.setHeader(Access-Control-Allow-Headers, *);response.setHeader(Access-Control-Allow-Credentials, true);chain.doFilter(req, res);}}继承 HandlerInterceptorAdapterComponentpublic class CrossInterceptor extends HandlerInterceptorAdapter {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {response.setHeader(Access-Control-Allow-Origin, *);response.setHeader(Access-Control-Allow-Methods, GET, POST, PUT, DELETE, OPTIONS);response.setHeader(Access-Control-Max-Age, 3600);response.setHeader(Access-Control-Allow-Headers, *);response.setHeader(Access-Control-Allow-Credentials, true);return true;}}实现 WebMvcConfigurerConfigurationSuppressWarnings(SpringJavaAutowiredFieldsWarningInspection)public class AppConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/**) // 拦截所有的请求.allowedOrigins(http://www.abc.com) // 可跨域的域名可以为 *.allowCredentials(true).allowedMethods(*) // 允许跨域的方法可以单独配置.allowedHeaders(*); // 允许跨域的请求头可以单独配置}/*** 页面跨域访问Controller过滤** return*/Overridepublic void addCorsMappings(CorsRegistry registry) {WebMvcConfigurer.super.addCorsMappings(registry);registry.addMapping(/**).allowedHeaders(*).allowedMethods(Get, HEAD, POST, PUT, DELECT,OPTIONS).allowedOrigins(*);}}使用CrossOrigin注解如果只是想部分接口跨域且不想使用配置来管理的话可以使用这种方式在Controller使用CrossOriginRestControllerRequestMapping(/user)public class UserController {GetMapping(/{id})public User get(PathVariable Long id) {}DeleteMapping(/{id})public void remove(PathVariable Long id) {}}在具体接口上使用RestControllerRequestMapping(/user)public class UserController {CrossOriginGetMapping(/{id})public User get(PathVariable Long id) {}DeleteMapping(/{id})public void remove(PathVariable Long id) {}}