前后端分离,后端处理跨域问题
由于前后端的端口和地址都有可能不一样,而我这边主要是后端维护,因此在后端servlet里面设置后端响应:
public class BaseServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String requestURI = req.getRequestURI();
String methodName = requestURI.substring(requestURI.lastIndexOf('/') + 1);
Class<? extends BaseServlet> aClass = this.getClass();
try {
Method method = aClass.getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
method.invoke(this,req,resp);
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
//后面是跨域的地址,我这前端是8080,后端是8088
resp.setHeader("Access-Control-Allow-Origin","http://localhost:8080");
resp.setHeader("Access-Control-Allow-Methods","http://localhost:8080");
resp.setHeader("Access-Control-Max-Age","4200");
resp.setHeader("Access-Control-Allow-Header","http://localhost:8080");
resp.setHeader("Access-Control-Allow-Credentials","true");
}
}