2017-03-09 148 views
1

我工作的一個項目,讓Android內置離子2版應用程序來創建用戶和驗證通過Django的REST API一個Django開發站點。離子的應用程序無法連接到本地主機

認證使用ionic serve這是通過使用跨源資源共享(如安裝谷歌瀏覽器插件)取得時的作品。

由於我試圖在實際的Android設備上運行應用程序,所以在使用應用程序時,身份驗證失敗(HTTP 404:URL未找到),但可以通過同一設備的瀏覽器訪問本地主機(通過192.168。 22.4:80)。

詳情:

我現在的私有IP地址是192.168.22.4和開發的網站目前在本地主機端口80通過WAMP Apache服務器提供服務。

這裏是離子應用我的http請求(註冊)的代碼片段:

let headers = new Headers(); 
     headers.append('Content-Type','application/json'); 

     this.http.post("http://192.168.22.4:80/api-user-create", JSON.stringify(this.postData), {headers: headers}).subscribe(res => { 
     console.log(res.json()); 
     this.showAlert(); 
     }, (err) => { 
     console.log(err); 
     }); 

應用解決方案:

這些都是我曾經嘗試,但仍無法連接到步本地主機:

  1. 確保允許該應用訪問WiFi連接,驗證我的IP地址是否正確,關閉防火牆a甚至我的殺毒軟件。我還在我的開發服務器上啓用了網絡發現。
  2. 使用代理服務器(ngrok)和編輯離子請求
  3. 啓動Apache服務器和編輯離子請求
  4. 編輯離子請求代碼上CORS。我曾試圖改變192.168.22.4:80到:
    • 192.168.22.4
    • 127.0.0.1:80
    • 127.0.0.1
    • localhost:80
    • localhost
    • 10.0.2.2
    • 10.0.2.2:80

有沒有人遇到過這個問題並解決它?

回答

1

問題解決! 我已經解決了它:

  1. 使WAMP聽< IP地址>:<端口號>。它最初默認設置爲0.0.0.0:80。要配置的,我更新了httpd.conf我WAMP的服務器上,然後加入一行: Listen 192.168.22.4:80
  2. 我離子項目安裝科爾多瓦 - 插件白名單。要做到這一點,我要運行: cordova plugin add cordova-plugin-whitelist --save
  3. 編輯我的離子代碼和刪除的端口號請求:

    let headers = new Headers(); 
        headers.append('Content-Type','application/json'); 
    
        this.http.post("http://192.168.22.4/api-user-create", JSON.stringify(this.postData), {headers: headers}).subscribe(res => { 
        console.log(res.json()); 
        this.showAlert(); 
        }, (err) => { 
        console.log(err); 
        }); 
    
  4. 重建並運行應用程序

Ionic App - No Internet Access瞭解更多信息。

相關問題