当我们将前后端分离时,就会涉及到跨域请求的问题
html页面通过ajax访问serlvet会出现以下错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
百度翻译:请求的资源上不存在“Access Control Allow Origin”标头。
这时就需要在后端的接口中,即servlet中进行相应的配置
public class FruitServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置跨域访问
//允许跨域的主机地址
response.setHeader("Access-Control-Allow-Origin", "*");
//允许跨域的请求方法GET, POST, HEAD 等
response.setHeader("Access-Control-Allow-Methods", "*");
//重新预检验跨域的缓存时间 (s)
response.setHeader("Access-Control-Max-Age", "4200");
//允许跨域的请求头
response.setHeader("Access-Control-Allow-Headers", "*");
//是否携带cookie
response.setHeader("Access-Control-Allow-Credentials", "true");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}