Java后台解決跨域問題


首先說一下什么是跨域?

JavaScript出於安全方面的考慮,不允許跨域調用其他頁面的對象。那什么是跨域呢,簡單地理解就是因為JavaScript同源策略的限制,a.com域名下的js無法操作b.com或是c.a.com域名下的對象。

當協議、子域名、主域名、端口號中任意一個不相同時,都算作不同域。不同域之間相互請求資源,就算作“跨域”。

例如:http://www.abc.com/index.html 請求 http://www.efg.com/service.php。

 

有一點必須要注意:跨域並不是請求發不出去,請求能發出去,服務端能收到請求並正常返回結果,只是結果被瀏覽器攔截了。之所以會跨域,是因為受到了同源策略的限制,同源策略要求源相同才能正常進行通信,即協議、域名、端口號都完全一致。

 

在這之前小冷自己寫了個簡單的前端頁面(注意此頁面使用vue),這里涉及的是前后端分離的操作,小冷使用vue中的ajax直接請求的后台的服務器,當然后台可以用任何語言實現數據傳輸(可使用java,python,node,php,c++,c#等),小冷使用的是java語言編寫的后台的代碼,此時就涉及到了跨域。

  1. 首先是前台數據可以傳到

  2. 然而后台卻無法相應回前台頁面(這里頁面會拋一個異常,說太安全,無法獲取請求后響應的數據--暫時就這樣理解吧嘻嘻)

  3. 請求代碼
  4. java解決方法:

    此處java使用的springboot框架,解決中使用的一個注解

    @CrossOrigin(origins = "*", maxAge = 3600) //* 可以改成ip地址

    加如此注解后

  5. 獲取到響應的數據,此處注解可以配置全局,亦可以配置方法局部小冷配置為全局

     

    此處基本跨域問題基本解決!

     

    前端vue跨域的解決方法:

  6. 大家可以關注我的微信公眾號”秦川以北“,里面還有好多實用的技術分享!

  7.  

     


免責聲明!

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



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