电子商务营销渠道有哪些,站群网站和做seo那个号,口碑营销经典案例,网站开发制作心得From: https://www.cnblogs.com/nananana/p/8492185.html
前言#xff1a;
当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时#xff0c;一个资源会发起一个跨域HTTP请求(Cross-site HTTP request)。 比如说#xff0c;域名A ( http://domaina.example …From: https://www.cnblogs.com/nananana/p/8492185.html
前言
当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时一个资源会发起一个跨域HTTP请求(Cross-site HTTP request)。 比如说域名A ( http://domaina.example ) 的某 Web 应用程序中通过 img标签引入了域名B( http://domainb.foo ) 站点的某图片资源(http://domainb.foo/image.jpg)域名A的那 Web 应用就会导致浏览器发起一个跨站 HTTP 请求。 在当今的 Web 开发中使用跨站 HTTP 请求加载各类资源包括CSS、图片、JavaScript 脚本以及其它类资源已经成为了一种普遍且流行的方式。 正如大家所知出于安全考虑浏览器会限制脚本中发起的跨站请求。比如使用 XMLHttpRequest 对象发起 HTTP 请求就必须遵守同源策略。 具体而言Web 应用程序能且只能使用 XMLHttpRequest对象向其加载的源域名发起 HTTP 请求而不能向任何其它域名发起请求。为了能开发出更强大、更丰富、更安全的Web应用程序开发人员渴望着在不丢失安全的前提下Web 应用技术能越来越强大、越来越丰富。比如可以使用 XMLHttpRequest 发起跨站 HTTP 请求。这段描述跨域不准确跨域并非浏览器限制了发起跨站请求而是跨站请求可以正常发起但是返回结果被浏览器拦截了。最好的例子是CSRF跨站攻击原理请求是发送到了后端服务器无论是否跨域注意有些浏览器不允许从HTTPS的域跨域访问HTTP比如Chrome和Firefox这些浏览器在请求还未发出的时候就会拦截请求这是一个特例。 引自https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS 方法一新增一个configration类 或 在Application中加入CorsFilter和CorsConfiguration方法 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 CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration new CorsConfiguration(); corsConfiguration.addAllowedOrigin(*); // 1允许任何域名使用corsConfiguration.addAllowedHeader(*); // 2允许任何头corsConfiguration.addAllowedMethod(*); // 3允许任何方法post、get等 return corsConfiguration; } Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration(/**, buildConfig()); // 4 return new CorsFilter(source); }
} 方法二使用Filter方式 import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; Component
public class CorsFilter implements Filter { final static org.slf4j.Logger logger org.slf4j.LoggerFactory.getLogger(CorsFilter.class); public 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, POST, GET, OPTIONS, DELETE); response.setHeader(Access-Control-Max-Age, 3600); response.setHeader(Access-Control-Allow-Headers, x-requested-with); System.out.println(*********************************过滤器被使用**************************); chain.doFilter(req, res); } public void init(FilterConfig filterConfig) {} public void destroy() {}
}