1

Je suis en train de construire une page de connexion sur 3 ionique est sous le code j'utilise Sur home.tsionique 3 reste l'authentification api

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { Http } from '@angular/http'; 

import { ServicesProvider } from '../../providers/services/services'; 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 

    userData = { username:'', password:'' }; 
    data : any; 

    constructor(public navCtrl: NavController, public servicesProvider: ServicesProvider) { 

    } 

    ionViewDidLoad() { 
    console.log('ionViewDidLoad HomePage'); 
    } 


    logIn() { 
    this.servicesProvider.login(this.userData).then((result)=>{ 
     this.data = result; 
    }); 
    } 

} 

Sur services.ts

import { Injectable } from '@angular/core'; 
import { Http } from '@angular/http'; 
import { HttpModule } from '@angular/http'; 
import { Headers} from '@angular/http'; 
import {OnInit} from '@angular/core'; 
import {RequestOptions, Request, RequestMethod} from '@angular/http'; 


import 'rxjs/add/operator/map'; 
import 'rxjs/add/operator/do'; 
import 'rxjs/add/operator/catch'; 


let apiUrl = 'http://9.xxx.xxx.xxx/test/xxxxx.aspx'; 


@Injectable() 
export class ServicesProvider { 

    constructor(public http: Http) { 
    console.log('Hello ServicesProvider Provider'); 
    } 

    login(credentials) { 
    return new Promise((resolve, reject) => { 
     let headers = new Headers(); 
     headers.append('Accept', 'application/json'); 

     this.http.post(apiUrl, JSON.stringify(credentials), {headers: headers}) 
      .subscribe(res => { 
      resolve(res.json()); 
      }, (err) => { 
      reject(err); 
      }); 
    }); 
    } 

} 

La réponse que je reçois: {"message":"failure","status":"Blank_Username","response":"Provide Username"}

en vérifiant le navigateur de connexion

La réponse que je reçois sur Google POST MAN: {"message":"success","status":"Auth_Successful","response":"Authentication successful"}

Je passe le nom d'utilisateur et mot de passe sur le corps de la requête POST sur MAN, il répond bien. Ce que j'ai besoin de comprendre, c'est d'envoyer les paramètres de nom d'utilisateur et de mot de passe de la mauvaise façon en utilisant 4 angulaire? Quelles pourraient être les autres options pour envoyer le nom d'utilisateur et le mot de passe en tant que paramètres en utilisant ionique 3 (angulaire 4).

+0

Meilleur moyen est pourquoi ne pas créer le modèle de connexion et envoyer au service? – soorapadman

+0

Corrigez-moi si je me trompe (je suis nouveau dans le développement de l'application angulaire et mobile dans son ensemble) page d'accueil est mon modèle de connexion et j'envoie la demande aux services sur les services.ts page Est-ce différent de ce que vous êtes suggérant? Merci d'avance – shiben

+0

pouvez-vous montrer votre code backend où il gère la demande de poste –

Répondre

0

Pouvez-vous essayer de définir l'en-tête comme celui-ci

this.http.post(apiUrl, JSON.stringify(credentials), { 
    headers: new HttpHeaders().set('Content-Type', 'application/json') 
}) 

peut-être la demande n'a pas le type de contenu correct

une autre chose que vous pourriez essayer est à la recherche du facteur que vous appelez faites, il pourrait envoyer les données en tant qu'url codé, et vous appelez devrait changer à quelque chose comme ceci

let url = `grant_type=password&username=${credentials.username}&password=${credentials.password}`; 
return this 
     ._http 
     .post(apiUrl, url, { 
      headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded') 
     })