2017-07-06 9 views
1

2番のアプリケーションを作成しています。サービスでhttpを使用してjsonデータにアクセスしようとしています。しかし、私は私が指定したフォルダ内のデータを持っていますが、私はそれにアクセスすることができません角2:HTTPからJSONにアクセス中にエラーが発生しました

**GET http://localhost:4200/data/products.json 404 (Not Found)** 

というエラーを取得しています。

私のサービスコードは以下の通りです。

import { Injectable } from '@angular/core'; 
import { Http, Response } from '@angular/http'; 
import { Observable } from 'rxjs'; 
import 'rxjs/add/operator/map'; 
import { Item } from './item'; 

@Injectable() 
export class ItemService { 
observableItems: Observable<Item[]> 
allItems: Item[] = []; 
selectedItems: Item[] = []; 
errorMessage: string; 
url = "http://localhost:4200/data/products.json"; 
constructor(private http:Http) { 
    this.observableItems = this.http.get(this.url).map((res: Response) => res.json()); 
    this.observableItems.subscribe(
      data => this.allItems = data, 
     error => this.errorMessage = <any>error); 
} 
getItems(): Observable<Item[]> { 
    return this.observableItems; 
} 
getSelectedItems(): Item[] { 
    return this.selectedItems; 
} 
    addItem(id:number): void { 
     let item = this.allItems.find(ob => ob.id === id); 
     if (this.selectedItems.indexOf(item) < 0) {  
     this.selectedItems.push(item); 
    } 
    } 
    removeItem(id:number): void { 
    let item = this.selectedItems.find(ob => ob.id === id); 
    let itemIndex = this.selectedItems.indexOf(item); 
     this.selectedItems.splice(itemIndex, 1); 
    } 
} 

enter image description here

+0

おそらくJSON形式でデータを提供するエンドポイントにアクセスします。 'http:// localhost:4200/data/products.json'というアドレスは、ダウンロード可能な' product.json'というドキュメントがあることを示唆しています。 'http:// localhost:4200/data/products'を照会する可能性が高くなります。 – dzejdzej

答えて

2

私のhtmlファイルは、だから私は、コードと画像の両方のベースディレクトリに到達するためにバックタブフォルダとappフォルダから来る必要がJSONファイルにアクセスするために

"Project/src/app/..." 

です。私は../を使ってフォルダから戻った。

次のようにこのことからサービスの私のURLは次のようになります。

url = "../../assets/data/products.json"; 
0

サービス・ファイルの場所からファイルへの直接パスを使用してみてください。例:

url = "data/products.json"; 

これは動作します。

+0

この方法で試しましたが、これは動作しません。 –

+0

サービスに関連するファイルのパスを教えてください。それは動作するはずです。 –

+0

ファイルのパスをsrcに変更しようとしました。パスはurl = "./ assets/data/data.json" –

関連する問題