Angular 4 HTTP请求中的错误404

时间:2017-12-20 15:06:18

标签: angular typescript

我尝试在已经问过的类似问题中搜索答案但未能解决问题

我是Angular 4的新手,并尝试为假想的书店制作一个简单的Angular前端。应用程序中存在一个硬编码数据集books.json。但问题是每次尝试运行它我得到以下错误:

Error showing in the ChromeSo,  Console

这是项目目录和代码的屏幕截图。

enter image description here

这是我的book.service.ts代码:

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

@Injectable()
export class BookService {

  constructor(private _http: Http){}

  getBooks(): Observable<IBook[]> {
    return this._http
    .get("api/books/books.json")
    .map((response : Response) => {
      return response.json() as IBook[];
    });
  }
}

3 个答案:

答案 0 :(得分:3)

一种选择是将json文件移动到angular-cli.json文件夹。更好的解决方案是编辑apps.assets并将您的文件夹(路线)添加到"assets": [ "api", "assets", "favicon.ico" ]

ng serve

现在应该可以访问json文件,您不需要更改任何代码。不要忘记停止提供应用程序并再次运行(np.abs(A) ** 1.05) * np.sign(A) array([[ 5.41899193, 6.56234129, 4.28709385, 1. ], [ -4.28709385, -1. , -7.71530221, -4.28709385], [ 2.07052985, -3.16940193, 10.04510857, 8.87655578]])

答案 1 :(得分:2)

var ref = firebase.database().ref("users"); var query = ref.orderByChild("database/username").equalTo("some_data"); query.once("value", function(snapshot) { snapshot.forEach(function(child) { console.log(child.key, child.val().bio); }); }); 文件夹移到api文件夹下。在这种情况下,root下。

问题不在代码中。它关于找到json文件的路径是无效的

您可以将文件保存在book-store文件夹下,并将src添加到api中的assets

angular-cli.json

答案 2 :(得分:1)

您的文件夹结构似乎没问题。问题是您的服务器对api文件夹一无所知。在.angular-cli.json中,将"api"放入assets数组,如下所示

 ...
 "assets": [
    "assets",
    "favicon.ico",
    "api"
 ],
 ...