AngularJs 2 Http CONNECTION ERROR

时间:2016-11-06 20:35:15

标签: http angular get webpack

带Webpack的AngularJs 2 我无法连接到NYT Api 所有正确测试和正常工作
生产模式中的AngularJs 2:

enableProdMode();  

应用:
-1分量
-1服务<​​/ p>

所有其他组件正常工作/显示。
尚未在应用上提供其他服务。

服务返回错误:(在控制台中)

error: "Collection 'topstories' not found"

error-from-console

服务

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 !!!

2 个答案:

答案 0 :(得分:0)

从您的控制台错误看起来在服务器上找不到网址。 显示的错误从服务器返回,而不是angularjs特定错误。 未找到404通知。 因此,请再次检查您的网址和服务器。

答案 1 :(得分:0)

原来我错过了:

Access-control-allow-origin  

头。
去图!
显然,它不是由AngularJs 2自动添加的。

感谢名单