【问题标题】:Http Post Request from Angular doesn't work来自 Angular 的 Http Post 请求不起作用
【发布时间】:2018-01-11 22:07:58
【问题描述】:

我以这种方式发送一个post请求(baseURL是正确的,路径/api/backend/valuePairs存在于服务器上)。

 sendValues(valuepairList:{x:number;fx:number}[]): Observable<boolean> {
        const headers = new Headers({'Content-Type': 'application/json'});
        const options = new RequestOptions({headers: headers});

        console.log("sending to server: ",JSON.stringify(valuepairList)); //this seems ok too

        return this.http.post(this.baseUrl + '/api/backend/valuePairs', {'data': JSON.stringify(valuepairList)}, options)
            .map(FunctionapproximationService.extractData)
            .catch(FunctionapproximationService.handleError);
}

但是在 Inspect mode / Networks 的网站上查看 Chrome,在执行此函数期间没有发送任何内容。(它被执行,函数内部的日志记录出现)。有人知道我做错了什么吗?谢谢。

【问题讨论】:

  • 您需要订阅sendValues通话结果...

标签: javascript json angular post http-post


【解决方案1】:

没有发送任何内容,因为默认情况下可观察对象是惰性的。您需要订阅它们才能调用 HTTP 请求。

sendValues(args).subscribe(result => console.log(result))

当响应到达时,将调用传递给subscribe 函数的函数。它还接受其他用于错误处理的函数以及在流完成时调用的函数,但我将其留给您从文档中弄清楚。

在 RxJS 世界中,.subscribe() 基本上就像使用参数调用一个普通的 JS 函数:()。要执行一个函数,你需要调用它。要执行 observable,您需要订阅它。

【讨论】:

    猜你喜欢
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2018-04-15
    • 1970-01-01
    • 2018-02-06
    相关资源
    最近更新 更多