axios跨域問題解決


問題描述

  • 前后端分離項目,前端使用axios訪問后端數據,前后端用的是兩個域名,在本地測試接口數據正常,但是部署到服務器上就出現跨域問題,奇怪的是有的接口跨域有的接口不跨域

分析過程

  • 插播一個小發現,自從部署到服務器代碼后服務器總是不會及時生效,要過一分鍾左右才會生效,以為是nginx服務器的緩存,更新代碼后重啟服務器都沒有用,今天才發現原來是在部署的時候PHP打開了opcache,把這個關閉就行了
  • 后端PHP程序在處理請求的時候是把所有的請求源都為允許的,剛開始以為是在header中攜帶token的問題,只要不攜帶token就沒事,后來經過調試發現是后端在處理token的時候拋出了異常,然后前端程序就出現了跨域問題,測試一段時間發現2**的開頭的狀態碼都是正常的,其他的狀態碼都是報跨域,這個時候自己犯了一個錯誤,覺得既然200是能接受的,說明跨域問題是不存在,是不是前端程序有什么問題,然后就照着這個方向去了,但是找了很長時間都沒有結果,最后有人說是異常處理也要設置跨域,tp框架在哪里設置異常跨域就不清楚了,這個時候到了解決問題的死胡同了,於此同時前端也在查找相關解決辦法,他在群里問別人是不是可以通過nginx設置成同源,剛開始的時候我是覺得他沒有接觸過nginx服務器的東西肯定搞不出來的,服務器就由他胡亂配置吧,但是最后沒有想到的是他居然成功的解決了這個跨域的問題,先說下他是怎么配置的吧,其實很簡單
 location /api/ {
              proxy_pass http://api.server.com/;
      }

就是這么簡單的代碼

感悟

  • 在遇到一個問題方向很重要,對的方向可以加快解決問題的進度
  • 自己有個問題,不喜歡問別人或者說不喜歡討論,別人知道的也是網上那些東西,還不如自己直接去網上搜,這種想法本身沒有問題,如果遇到自己沒有涉及過的領域可以先冷靜分析適當的時間,如果在一定時間沒有解決或者沒有思路那就要問熟悉這個技術的人了,這樣才能更快的學東西
  • 永遠不要覺得自己什么事情都比別人厲害,要虛心


免責聲明!

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



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