angular.js - ionic2 瀏覽器跨域問題
問題描述
ionic2項目從Localhost向遠程服務(wù)器提交Post請求,在真機中可以返回正確的數(shù)據(jù),但是在Chrome中遇到了跨域的問題,查了些資料,配置了一下服務(wù)端的Access-Control-Allow,但是沒效果,誰能看一下嗎,下面是報錯和代碼。
問題解答
回答1:這個坑我也遇到過,整個過程我都寫在我的博客里了:http://www.haoguangbo.com/arc...
簡單來說,因為真機里網(wǎng)頁的訪問走的是file://協(xié)議,而非http://或https://,因此不會出現(xiàn)跨域問題,但是瀏覽器里開發(fā)調(diào)試的時候,由于實際上是ionic的CLI在本地跑了一個小服務(wù)器,網(wǎng)頁等資源都是通過http加載的,就會出現(xiàn)跨域問題。解決這個其實很簡單,后端服務(wù)器不需要做任何處理,只需要在ionic的配置文件(ionic.config.js)里加上proxy這個字段,如下所示:
{ 'name': 'appname', 'email': '', 'app_id': '', 'proxies': [ { 'path': '/api', 'proxyUrl': 'https://api.instagram.com/api' } ]}
然后,在想訪問https://api.instagram.com/api/xxx的時候,就改成訪問/api/xxx,ionic會自動把以http://localhost:8000/api開頭的請求都轉(zhuǎn)發(fā)到https://api.instagram.com/api,就像shadowsocks一樣。最后重新ionic serve重啟一下ionic就可以了。這個問題,ionic團隊真應(yīng)該寫到官方文檔里,實在是坑了太多的人了。希望能幫到題主。
回答2:angular設(shè)置了CROS沒有?
$httpProvider.defaults.withCredentials = true;
相關(guān)文章:
1. python 計算兩個時間相差的分鐘數(shù),超過一天時計算不對2. javascript - 使用form進行頁面跳轉(zhuǎn),但是很慢,如何加一個Loading?3. javascript - 后臺管理系統(tǒng)左側(cè)折疊導航欄數(shù)據(jù)較多,怎么樣直接通過搜索去定位到具體某一個菜單項位置,并展開當前菜單4. javascript - ES6規(guī)范下 repeat 函數(shù)報錯 Invalid count value5. docker-machine添加一個已有的docker主機問題6. docker-compose中volumes的問題7. angular.js - 輸入郵箱地址之后, 如何使其自動在末尾添加分號?8. javascript - html5的data屬性怎么指定一個function函數(shù)呢?9. javascript - JS 里面的 delete object.key 到底刪除了什么?10. html5 - 為什么使使用vue cli 腳手架,post-css 沒有自動對css3屬性自動添加瀏覽器前綴呢?
