错误代码:Access to XMLHttpRequest at 'http://localhost:8080/test/login?name=123' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

 

若我们将前后端分离的时候,就会涉及跨域请求的问题,这时需要在后端的接口中,进行相应的配置。

Servlet设置支持前端的跨域请求

 用浏览器发起请求,看到浏览器控制台如上图爆红了,不尽人意,这该如何是好!

我们发现了这个带有引号的组合词 'Access-Control-Allow-Origin',百度翻译一下比较稳妥。

Servlet设置支持前端的跨域请求

其实应该是"允许访问控制源点"的意思,说明前端请求有一定的限制,才会导致服务器响应出问题了。 

那么就需要一些权限。如下操作即可。

在Servlet请求处理类中的service、doGet或doPost方法加上以下代码。

protected void service(HttpServletRequest arg0, HttpServletResponse arg1) 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");

 

}

其中*是代表允许所有站点访问,平时学习这样用就无妨,实际中使用,还需要进一步了解。

 

相关文章:

  • 2021-07-25
  • 2022-12-23
  • 2021-06-16
  • 2022-12-23
  • 2021-09-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-16
  • 2021-09-17
  • 2022-12-23
  • 2021-09-03
相关资源
相似解决方案