带Webpack的AngularJs 2
我无法连接到NYT Api
所有正确测试和正常工作
生产模式中的AngularJs 2:
enableProdMode();
应用:
-1分量
-1服务</ p>
所有其他组件正常工作/显示。
尚未在应用上提供其他服务。
服务返回错误:(在控制台中)
error: "Collection 'topstories' not found"
服务
import { Injectable } from '@angular/core';
import { Http, Headers, URLSearchParams, Response } from '@angular/http';
import 'rxjs/add/operator/toPromise';
import { Observable } from 'rxjs';
@Injectable()
export class NewsService {
private topStoriesUrl: string = `https://api.nytimes.com/svc/topstories/v2/politics.json`;
// private topStoriesUrl: string = `https://newsapi.org/v1/articles`;
// Injecting Http capabilities
constructor( private http: Http ) {}
// for error handling
private handleError(error: any): Promise<any>{
console.error("FromSERVICE:::---:::--> ", error);
return Promise.reject( error.message || error );
}
getNews(): Observable<any> {
let parms: URLSearchParams = new URLSearchParams();
parms.set("api-key", "184db335652341518bea3e4a5db85494");
// parms.set("source", "associated-press");
// parms.set("apiKey", "e4e2aa62a883464a87547e8de4336f61");
return this.http.get( this.topStoriesUrl, { search: parms } )
.map( (res: Response) => res['articles'] )
.catch( this.handleError );
}
}
组件
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
// service for fetcing news from api
import { NewsService } from '../services/news.service';
@Component({
selector: 'main-news',
templateUrl: '../templates/main-news.component.html'
})
export class MainNewsComponent implements OnInit{
private news: Observable<any>;
constructor(
private router: Router,
private newsService: NewsService
) {}
ngOnInit(): void {
this.newsService.getNews().subscribe( {
next: r => this.news = Observable.of<any[]>(["one"]),
error: err => console.error("From COMPONENT--->", err)
} );
}
}
我和来自不同组织的Api一起试过这个电话
URL资源上的相同错误
我已尝试使用带有Ruby脚本(NET / http)的URL进行同样的调用,也直接在浏览器地址栏上尝试,以便在这两种情况下接收有效的响应。
不确定为什么它会因为角落而失败。
HELP !!!
答案 0 :(得分:0)
从您的控制台错误看起来在服务器上找不到网址。 显示的错误从服务器返回,而不是angularjs特定错误。 未找到404通知。 因此,请再次检查您的网址和服务器。
答案 1 :(得分:0)
原来我错过了:
Access-control-allow-origin
头。
去图!
显然,它不是由AngularJs 2自动添加的。
感谢名单