通常在java的servlet类中的service方法中添加一行如下代码:
res.setHeader("Access-Control-Allow-Origin", "*")
即可实现前后端的通信问题。
如涉及登录界面等,需要session保存数据,则需要根据如下设置。
1.确保地址栏中的静态页面的访问地址的域名和服务端数据接口的域名是是一样的
例如:
前端页面:http://localhost:8848/login.html->不要用127.0.0.1
服务端路径:http://localhost:8888
2.在前端要设置允许携带凭证(相当于每个ajax都会携带xhrFields)
$.ajaxSetup({
xhrFields: {
withCredentials: true
}
});
该代码在单独新建common.js 文件中设置(注意,在引入时需先引入jq文件,否则会报错)
3.在服务端servlet类service方法中设置允许携带凭证时的跨域配置
res.setHeader("Access-Control-Allow-Origin", req.getHeader("Origin"));
res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE,PUT,PATCH");
res.setHeader("Access-Control-Max-Age", "0");
res.setHeader("Access-Control-Allow-Headers", "*");
res.setHeader("Access-Control-Allow-Credentials", "true");
res.setHeader("XDomainRequestAllowed", "1");