Angular 5 - невозможно использовать ответ от запроса GET - PullRequest
0 голосов
/ 24 мая 2018

Я занимаюсь этим и ищу решение уже два дня.Надеюсь, кто-то может мне помочь.Я новичок в Angular 5.

Я пытаюсь использовать WP REST API для приложений на главной странице.После изучения этого урока:

http://techattitude.com/tips-tricks-and-hacks/how-to-remotely-create-a-user-on-your-wordpress-website-using-json-api-request/

Я обнаружил, что ответ получен, но я не могу получить доступ к ответу.Я пытаюсь console.log () значение ответа, и ничего не появляется.Вот мой код ниже, пожалуйста, посмотрите и дайте мне знать, что я делаю неправильно.Я реализовал свой запрос GET через службу.

api-config-nonce.ts

export interface ApiConfigNonce {
   status: String,
   controller: String,
   method: String,
   nonce: String 
}

auth.service.ts

import { EventEmitter, Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { ModalService } from '../services/modal.service';
import { Observable } from 'rxjs/Observable';
import { map } from 'rxjs/operators';
import { ApiConfigNonce } from '../api-config-nonce';

@Injectable()
export class AuthService {
apiHost:string = 'http://localhost/';
apiBase:string = 'b0ffv3BH7K6h/';
email:string;
password:string;

userSignIn = new EventEmitter<object>();

constructor(private http:HttpClient, private modalService: 
ModalService){
}

login(email, password){


console.log('login()');
let options = {
    "insecure":"cool",
    "email":email,
    "password": password
}
    return this.http.post(this.apiHost + this.apiBase + 
'user/generate_auth_cookie/' , options);
}

getNonce(){
    return this.http.get<ApiConfigNonce>(this.apiHost + this.apiBase + 
'get_nonce/?controller=user&method=register')
    .map(res => res);
}

newUser(username, email, password, firstname, lastname, nonce){
    return this.http.get(this.apiHost + this.apiBase + 'user/register/? 
username='+ username + '&email=' + email + '&nonce=' + nonce + 
'&first_name=' + firstname + '&last_name=' + lastname);
}
}

sign-up.component.ts

import { Component, OnInit, AfterViewInit, ViewChild } from 
'@angular/core';
import { FormsModule } from '@angular/forms';
import { NgForm } from '@angular/forms';
import { UsersService } from '../../services/users.service';
import { AuthService } from '../../services/auth.service';
import { HttpClient } from '@angular/common/http';

@Component({
selector: 'app-sign-up',
templateUrl: './sign-up.component.html',
styleUrls: ['./sign-up.component.scss']
})
export class SignUpComponent implements OnInit, AfterViewInit {
@ViewChild('f') signupForm: NgForm;
signUpDetails:object;
busyProcessing:boolean = false;
errorMessage:string = null;
token:string = null;
userId:number = null;
nonce:any;


constructor(private usersService: UsersService, private authService: 
AuthService, private http:HttpClient) { }

ngOnInit() {
 this.getNonce();
}

ngAfterViewInit(){

}

getNonce(){
console.log('getNonce()');
this.authService.getNonce()
.subscribe(
  data => {
    this.nonce = JSON.stringify(data);
    console.log(data);
  },
  (error)=>{
    this.onError(error);
    console.log(error);
  }
);

console.log(this.nonce);
}


onError(response){
switch (response.error.code) {
case 406:
this.errorMessage = "Either that email or username is already in 
use";
break;
  case 403:
    this.errorMessage = "Failed to authorize, please try again later";
  default:
    this.errorMessage = "There was an error signing you up, please try 
 again";
    break;
}
this.busyProcessing = false;
}
}

Функцией в моем компоненте, использующей мой сервис, является getNonce ().Я не уверен, почему, когда я тестирую конечные точки на почтальоне, я вижу ответ, но не могу назначить этот ответ переменной, чтобы использовать его.Он отображает эту ошибку: «Http error response (неизвестный URL): 0 неизвестная ошибка»

Любая помощь будет принята с благодарностью.

...