2016-04-08 27 views
0

Başka bir hizmete (bir yay uygulaması), bir kimlik doğrulaması için bir posta isteği göndermeye çalışıyorum, ancak işlevsel bir Açısal2 posta isteği oluşturmada sorun yaşıyorum. Oldukça yeni olan referans için this video kullanıyorum, bu yüzden bilgilerin hala geçerli olduğunu kabul ediyorum. Ayrıca, herhangi bir sorun olmadan bir istek isteğini de yürütebiliyorum.İşlevsel bir Angular2 yaratma zorluğu

İşte benim sonrası isteği var:

export class LogIn { 
    authUser: string; 
    authPass: string; 
    token: any; 

    constructor(private _http:Http){} 

    onSubmit() { 
     var header = new Headers() 
     var json = JSON.stringify({ user: this.authUser, password: this.authPass }) 
     var params2 = 'user=' + this.authUser + '&password=' + this.authPass 
     var params = "json=" + json 
     header.append('Content-Type', 'application/x-www-form-urlencoded') 

     this._http.post("http://validate.jsontest.com", params, { 
      headers: header 
     }).map(res => res.json()) 
      .subscribe(
       data => this.token = JSON.stringify(data), 
       err => console.error(err), 
       () => console.log('done') 
      ); 
     console.log(this.token); 
    } 
} 

bilgi doğru bir formdan götürülüyor, Emin olmak için onu birkaç kez test etti. Ayrıca json'u kurmak için iki farklı yol kullanıyorum (param ve param2). İstek, http://validate.jsontest.com adresine göndermeye çalıştığımda, konsol undefined'u this.token'un nerede olması gerektiğini yazdırır. Ben Bahar uygulamaya isteği göndermek çalıştığınızda, ben o tarafta bir hata alıyorum:

Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

kimse ben yanlış yapıyorum biliyor mu?

cevap

1

Aslında bunu yapmak GET yöntemi kullanmak gerekir: http://plnkr.co/edit/fAHPp49vFZJ8OuPC1043?p=preview:

var json = JSON.stringify({ 
    user: this.authUser, password: this.authPass 
}); 

var params = new URLSearchParams(); 
params.set('json', json); 

this._http.get("http://validate.jsontest.com", { 
    search: params 
}).map(res => res.json()); 

bu plunkr bakın.

+0

Teşekkürler, bu işe yarıyor! Hangi durumlarda http.post kullanmalıyım? – napstablook