Http Post上的Json文件无效

时间:2018-02-23 00:38:12

标签: angular http

我试图在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帖子?

2 个答案:

答案 0 :(得分:1)

您无法直接在assets文件夹中发布Json文件。 Web浏览器仅支持对文件的GET次调用。要使http.post正常工作,您必须使用Web服务器来托管文件。

您可以轻松使用的一个此类Web服务器是json server。它以npm包的形式提供。使用json server托管您的文件,然后使用json server提供的网址post数据。阅读docs以获得更多理解。

答案 1 :(得分:0)

试试这个。在您的代码中,您没有通过帖子调用传递选项标题。

run!