2016-07-31 18 views
0

Ich arbeite an angular2 + nativescript Projekt dieses Saatgut-Projekt mit, und ich bin nicht in der Lage, einen einfachen HTTP-POST-Aufruf mit diesem CodeNatviescript Angular2 HTTP

return this.http.post(`${AppConfigService.API_PATH}/login`, body, options) 
      .map(res => res.json()) 
      .catch((err: any) => { 
      return Observable.throw(err); 
      }); 

diesen Code zu machen arbeitet in normalen angular2 App in Ordnung, aber in nativen Skript gibt es den Fehler: Antwort mit dem Status: 200 URL: null

ich habe auch das Problem auf Github protokolliert: https://github.com/NativeScript/NativeScript/issues/2536

+0

benötigt Entfernen Haben Sie dieses Problem gelöst ? Ich bin mit dem gleichen Problem und ich weiß nicht, was ich tun soll. –

Antwort

-1

Sie müssen die NativeScript HTTP-Modul verwenden, here sind die Dokumente. Die verschiedenen mobilen Plattformen funktionieren anders als ein normaler Browser. Daher benötigen Sie ein {N} -Kernmodul, um die verschiedenen plattformspezifischen APIs zu verwalten. Ein JSON POST würde wie folgt aussehen:

var result; 

http.request({ 
    url: "https://httpbin.org/post", 
    method: "POST", 
    headers: { "Content-Type": "application/json" }, 
    content: JSON.stringify({ MyVariableOne: "ValueOne", MyVariableTwo: "ValueTwo" }) 
}).then(function (response) { 
    // result = response.content.toJSON(); 
    // console.log(result); 
}, function (e) { 
    // console.log("Error occurred " + e); 
}); 

und Sie müssen Sie var http = require("http");

-1

Sie können nativescript http mit eckigem, folgendem Beispiel verwenden verwenden gewährleisten:

erster Import http dient in der Spitze Die Servicekomponente

In der Datei "sevice.ts" müssen Sie das http-Versprechen in beobachtbar konvertieren.

//GET Example 
    getList(): Observable<News[]> { 
     return Observable.fromPromise(
        http.getJSON(serverConfig.apiUrl+"news") 
       ).map(function(res:any) { 
        console.log('finished sendign request'); 
        return res as News[] 
       }); 

    } 


//POST EXAMPLE 

submitFormData(data): Observable<Forms> { 
     let url:string=serverConfig.apiUrl+"forms/"; 
     let headers:any = { 'Content-Type': 'application/json', 'Authorization': 'Bearer '+this.appSettings.getString("access_token")}; 
     let req:any={ 
      url:url, 
      method: "post", 
      headers:headers, 
      content: JSON.stringify(data) 
     }; 

     return Observable.fromPromise(
        http.getJSON(req) 
       ).map(function(res:any) { 
        return res as Forms 
       }); 
    } 

dann können Sie auf die beobachtbaren abonnieren, wie Sie vor dem verwendet,

this.newsService.getList().subscribe((res) => { 
    this.news= res; 
}); 

Hinweis: Jetzt können Sie den Import statment von Winkel http seit seiner nicht