Ich habe einen einfachen Dienst erstellt, um Daten über eine http-Anfrage zu erhalten. Die Daten sind in JSON-Form und ich verwende die Map-Funktion, so dass sie dem Blog-Datentyp entspricht. Wenn ich jedoch die Methode "getBlogs" vom Dienst aufruft, um die Daten zu erhalten, wird nichts zurückgegeben. Irgendwelche Gedanken darüber, was ich vermisse?Angular 4 http nicht zurück Antwort
Die Komponente.
import {Http} from '@angular/http';
import {forEach} from '@angular/router/src/utils/collection';
import {BlogService} from '../services/blog.service';
import {Component, OnInit} from '@angular/core';
import {Blog} from '../blog/blog';
import {Observable} from 'rxjs/Rx';
import 'rxjs/add/operator/map';
import 'rxjs/Rx';
@Component({selector: 'app-blog-list', templateUrl: './blog-list.component.html',
styleUrls: ['./blog-list.component.css'],
providers: [BlogService]})
export class BlogListComponent implements OnInit {
blogArray: Blog[] = [];
blogTitle: string;
loading: boolean;
private blogsUrl = 'http://www.mocky.io/v2/59a49eb3100000be05b2aba6';
constructor(private blogService: BlogService, private http: Http) {}
ngOnInit() {
this.blogService
.getBlogs(this.blogsUrl)
.subscribe(res => {
this.blogArray = res;
console.log('theBlogArray', this.blogArray);
});
}
}
Das Service
import { Observable } from 'rxjs/Rx';
import 'rxjs/add/operator/map';
import 'rxjs/Rx';
import {Headers, Http } from '@angular/http';
import { Injectable } from '@angular/core';
import {Blog} from '../blog/blog';
@Injectable()
export class BlogService {
private loading: boolean;
constructor(private http: Http) {}
getBlogs(url: string): Observable<Blog[]> {
this.loading = true;
return this.http.get(url)
.map((response) => response.json());
}
}
Wie in den Antworten erwähnt könnte es ein CORS Problem sein. Allerdings bekomme ich in der Konsole überhaupt keine Fehler. Nur für den Fall, dass ich die CORS-Chrome-Erweiterung (Allow-Control-Allow-Origin: *) in meinem Browser aktiviert habe, was ich normalerweise mache, wenn ich CORS-Probleme habe und in die Kopfzeile von mocky setze, wieder wie vorgeschlagen. Noch nichts, keine Beschwerden von der Konsole und Webpack kompiliert erfolgreich.
Wenn ich die Werte der JSON-Anfrage in ein Array im Service hart Code und Zugriff es über Komponente, werden die Werte zurückgegeben und ich kann sie console.log und zeigen sie auf dem HTML.
Gleiche wie ich zu den anderen Kerl sagte, wenn ich zu trösten versuchen.Log von der Subscribe-Funktion zeigt nichts in der Chrom-Konsole –
Erhalten Sie einen Fehler auf Http fetch? – Rajez
Ich habe keinen Zugriff auf die Abrufmethode, da ich die http-Klasse von @ angular/http verwende –