$.ajax({
type:'post',
url: 'http://localhost:8085/cart/selectCartShopNum',
dataType: 'json',
xhrFields: {
withCredentials: true //解决跨服务传递时不传递cookie的问题,允许携带证书
},
crossDomain: true, //允许跨域
success: function (data) {
console.info(data)
if (data.status == 200){
alert(data.data)
$("#shopping-num").html = data.data
}
}
})
The value of the ‘Access-Control-Allow-Origin’ header in the response must not be the wildcard ‘*’ when the request’s credentials mode is ‘include’.
<!-- 使用filter进行跨域 -->
<filter>
<filter-name>filter</filter-name>
<filter-class>com.qiudong.cart.filter.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
//解决ajax携带cookie的跨域问题,使用@CrossOrigin注解冲突
public class CorsFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest reqs = (HttpServletRequest) req;
// response.setHeader("Access-Control-Allow-Origin",reqs.getHeader("Origin"));
//注意重点:下面的第二个参数不可以写*通配,需要明确写出请求方的IP地址及端口
response.setHeader("Access-Control-Allow-Origin","http://localhost:8081");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, DELETE, PUT");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
chain.doFilter(req, res);
}
@Override
public void destroy() {
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容