-
讲的很是到位,非常满意,回头可以再购买下老师的付费课程查看全部
-
发生ajax跨域问题的原因(要同时满足):
1.浏览器限制
2.跨域(发出去的请求不是本域的)
3.XHR(XMLHttpRequest)请求
查看全部 -
一、调用方、被调用方解决跨域
查看全部 -
一、虚拟主机
1、虚拟主机:多个域名指向同一个服务器,服务器根据不同的域名把请求转到不同的应用服务器。看上去有多个主机,实际上只有一个主机。
查看全部 -
后台业务逻辑
查看全部 -
前端页面搭建
查看全部 -
未实现之前 - 报错原因
查看全部 -
未实现之前
查看全部 -
实现Filter后
查看全部 -
未实现Filter前
查看全部 -
一、cookie
String origin = req.getHeader("Origin");
if (!org.springframework.util.StringUtils.isEmpty(origin)) {
res.addHeader("Access-Control-Allow-Origin", origin)
}
查看全部 -
一、http会话session依赖于cookie, sessionid存放在cookie中。
二、ajax
1、$.ajax({
type: "get",
xhrFields: {
widthCredentials: true // 发送ajax请求的时候会带上cookie
}
})
2、cookie是加在被调用方。
3、读cookie只能读到本域的。
4、带cookie时,后台代码注意以下2点:
(1)带cookie了的时候,Access-Control-Allow-Origin,必须是全匹配,如http://localhost:8081, 不能是 *
(2)enable cookie
res.addHeader("Access-Control-Allow-Credentials", "true")
查看全部 -
一、预检命令的缓存
1、res.addHeader("Access-Control-Allow-Headers","Content-Type");
2、res.addHeader("Access-Control-Max-Age", "3600"); 3600秒,告诉浏览器1个小时之内不要清除这段缓存信息。
查看全部 -
一、简单请求:
查看全部 -
一、被调用解决方法-filter解决方案
@Bean
public FilterRegistrationBean registerFilter() {
@override
public void init(FilterConfig filterConfig) throws ServletException{
}
@override
public doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOExceprion, ServletException{
}
HttpServletResponse res = (HttpServletResponse) response;
res.addHeader("Access-Control-Allow-Origin", "http://localhost:8081");
res.addHeader("Access-Control-Allow-Methods", "GET");
chain.doFilter(request, response);
}
查看全部
举报