gpt4 book ai didi

javascript - 未调用 Angular 2 http 发布请求

转载 作者:行者123 更新时间:2023-12-03 18:01:01 24 4
gpt4 key购买 nike

我正在使用 Angular 2 发出获取请求和发布请求。我的 get 请求工作正常,但对于我的帖子,在检查我的 Firebug Net 面板时我没有看到请求已发出

代码方法如下所示。我还有从组件类调用它们的订阅方法。

import {Injectable} from "angular2/core";
import {Http, Response, Headers, RequestOptions, Jsonp, URLSearchParams} from "angular2/http";
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';

@Injectable()
export class MyService{
constructor (private _http: Http){}


testPost(){

var json = JSON.stringify({"userId": 111, "givenName": "CZ"});
var body = "json="+json;
var headers = new Headers({ 'Content-Type': 'application/json' });
var options = new RequestOptions({ headers: headers });

return this._http.post("http://mylocal.post.url", body, options)
.map(this.extractData)
.catch(this.handleError);

}

private extractData(res: Response) {
alert("test whether this method is reached");

let body = res.json();
return body.data || { };
}

private handleError (error: any) {
alert("test whether this method is reached");

let errMsg = (error.message) ? error.message :
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
console.error(errMsg); // log to console instead
return Observable.throw(errMsg);
}

//testGet method is running well
testGet(link:string){

return this._http.get(link)
.map(res => res);

}
}

我的订阅方法 onTestPost(),它被分配给页面上的一个按钮。

onTestPost(){
this.myService.testPost()
.subscribe(
data => this.getData = JSON.stringify(data),
error => alert(error),
() => console.log("Finished")
);
}

我在两个辅助方法的开头放置了一个警告语句。没有达到任何警报。在使用 Firebug 进行调试时,我没有看到对我的本地帖子 url 调用任何请求。

虽然我的 testGet 方法工作正常,但我只是不知道 testPost 缺少什么。

最佳答案

我认为您的订阅方法是这里的问题所在。请确保调用了 subscribe

"This observable is cold which means the request won't go out until something subscribes to the observable."

参见 https://angular.io/docs/ts/latest/guide/server-communication.html

关于javascript - 未调用 Angular 2 http 发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38043247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com