Servlet設置支持前端的跨域請求


錯誤代碼: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.

 

若我們將前后端分離的時候,就會涉及跨域請求的問題,這時需要在后端的接口中,進行相應的配置。

 用瀏覽器發起請求,看到瀏覽器控制台如上圖爆紅了,不盡人意,這該如何是好!

我們發現了這個帶有引號的組合詞 'Access-Control-Allow-Origin',百度翻譯一下比較穩妥。

其實應該是"允許訪問控制源點"的意思,說明前端請求有一定的限制,才會導致服務器響應出問題了。 

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

在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");

 

}

其中*是代表允許所有站點訪問,平時學習這樣用就無妨,實際中使用,還需要進一步了解。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM