我在http服务方面有问题。
我尝试的是this.http.get('http://jsonplaceholder.typicode.com/posts/1')
作为样本数据,它可以工作。但是当我使用this.http.get('src/data/employees.json')
时,它显示了404 (未找到)
employees.service.ts
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class EmployeesService {
constructor(private http: Http) {}
getEmployees() {
this.http
.get('src/employees.json')
.map((response) => response.json())
.subscribe((result) => console.log(result));
}
}
app.component.ts
import { Component } from '@angular/core';
import { EmployeesService } from './employees.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
constructor(private employeesService: EmployeesService) {}
ngOnInit() {
this.employeesService.getEmployees();
}
}
发布于 2017-08-29 06:21:51
如果您正在使用angular cli
,则必须通过在.angular-cli.json
中设置json文件来输出json文件,如下所示:
"assets": [
"assets",
"src/employees.json"
],
但是,我建议在您的data
文件夹中创建一个类似src
的文件夹,并将您的所有数据.json
归档到其中。然后让您的assets
配置如下:
"assets": [
"assets",
"data"
],
这样cli将始终输出整个data
文件夹,因此不必分别指定每个.json
文件。
如果您在
.angular-cli.json
期间更改ng serve
以使更改生效,则必须重新启动ng serve
发布于 2017-08-29 05:44:42
看起来,您正在尝试访问"src“目录中的一个文件,该文件从来没有静态可用。
如果您需要直接访问该json文件,则需要确保它存储在webserver的适当目录中,以便它可以直接服务(这通常是通过在后端配置静态/服务设置来完成的)。
仅仅因为一个文件存在于您的项目文件夹中,并不意味着webserver使所有文件都可用。
发布于 2019-03-14 10:02:40
将您的文件放入yourProject/src/assets
文件夹并给出路径,如/assets/yourFilename.json
https://stackoverflow.com/questions/45931391
复制相似问题