我试图在Angular上的一个json文件上做一个简单的帖子,我调用了该服务,但它不会在网络上的控制台上返回任何内容,我错过了什么?
这是该服务的摘录:
import { Injectable } from '@angular/core';
import {HttpClient, HttpErrorResponse, HttpParams } from '@angular/common/http'
import { Observable } from 'rxjs/Observable';
export interface Todo {
text: string
}
@Injectable()
export class TodoService {
constructor(private http: HttpClient) { }
addTodo(todo): Observable<Todo> {
const newTodo = {
text: todo.text
}
return this.http.post<Todo>('./assets/data/todo.json', newTodo);
}
当我点击一个按钮时,它会调用此addTodo函数,但它不会返回任何内容。
是的,资产文件夹中有一个名为todo.json的文件。是否可以在json文件上创建一个简单的HTTP帖子?
答案 0 :(得分:1)
您无法直接在assets
文件夹中发布Json文件。 Web浏览器仅支持对文件的GET
次调用。要使http.post
正常工作,您必须使用Web服务器来托管文件。
您可以轻松使用的一个此类Web服务器是json server
。它以npm
包的形式提供。使用json server
托管您的文件,然后使用json server
提供的网址post
数据。阅读docs以获得更多理解。
答案 1 :(得分:0)
试试这个。在您的代码中,您没有通过帖子调用传递选项标题。
run!