Flutter web 跨域問題

背景:

用flutterweb工程做了一個產物化平臺,現在想在裏面去展示aar構建的信息。nexus有api可以對外來訪問。通過dio去拿相應的數據即可。

問題:

80端口下面的flutter web工程訪問8081端口下的nexus服務,請求失敗。

http://127.0.0.1:8081/service/rest/v1/components/bWF2ZW4tcmVsZWFzZXM6Zjg5OGIzOTAzY2I5OWM1OTYyNTVjZGUzNDQ2N2Q0OGE

通過postman或者客戶端可以成功拿到數據,但是flutter web的dio卻不行。

DioError[DioErrorType.RESPONSE]:XMLHttpRequesterror

解決辦法:

查了一下,是跨域問題導致。服務部署在nginx下面。

flutter_web工程啓動後在默認的80端口上面監聽。訪問的8081端口部署的nexus服務中的api失敗。通過nginx的配置,把8081端口的服務通過代理配置到當前路徑下面。這樣間接對8081的服務進行訪問。

原來的訪問地址變成了

http://127.0.0.1/nexus/service/rest/v1/components/bWF2ZW4tcmVsZWFzZXM6Zjg5OGIzOTAzY2I5OWM1OTYyNTVjZGUzNDQ2N2Q0OGE

剛開始發現調試無法成功,以爲配置有問題,後來發現調試的時候默認不是80端口,所以還是有跨域問題,而部署到80端口後,發現能正常訪問到數據了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章