Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用HTTP observable在Angularjs 2中发布数据_Http_Angular_Rxjs_Observable - Fatal编程技术网

使用HTTP observable在Angularjs 2中发布数据

使用HTTP observable在Angularjs 2中发布数据,http,angular,rxjs,observable,Http,Angular,Rxjs,Observable,我正在使用HTTP observable执行POST请求,并且没有发出请求,我没有收到任何错误,我有一个服务,它定义了我用来发出请求的方法 @Injectable() export class MovingCompanyService { constructor(private http: Http){} registerCompany (body: Object): Observable<RegistrationDetailsModel> { let bodyString = J

我正在使用HTTP observable执行POST请求,并且没有发出请求,我没有收到任何错误,我有一个服务,它定义了我用来发出请求的方法

@Injectable()
export class MovingCompanyService {
constructor(private http: Http){}

registerCompany (body: Object): Observable<RegistrationDetailsModel> {
let bodyString = JSON.stringify(body); // Stringify payload
let headers      = new Headers({ 'Content-Type': 'application/json' }); //      ... Set content type to JSON
let options       = new RequestOptions({ headers: headers }); // Create a   request option

return this.http.post("/moving_company/registration_form_2", body, options) // ...using post request
                    .map((res:Response) => res.json()) // ...and calling     .json() on the response to return data
                    .catch((error:any) => Observable.throw(error.json().error || 'Server error')); //...errors if any
}   

}
我有一个调用这个服务方法的组件

constructor(private router: Router, private moving_company_service: MovingCompanyService) {}
ngOnInit(): void {
    if( Session.has("reg_frm_1")) {
        let frm1Data = Session.get("reg_frm_1");
        console.log("Received data from form 1 ", frm1Data);
    }
}

registerCompany(): void {
    let registrationOperation:Observable<RegistrationDetailsModel>;
    let registration_details = {
        reg_frm_1: Session.get("reg_frm_1"),
        reg_frm_2: this.model
    }
     this.moving_company_service.registerCompany(registration_details)
}
我在视图单击事件上调用组件方法“registerCompany”,如

<button (click)="registerCompany()">Submit</button>
我不确定我遗漏了什么或做错了什么,我已经导入了rxjs库、地图和捕捉操作符,并按照要求导入了所有相关内容,如果您能提供帮助,我将不胜感激

        this.moving_company_service.registerCompany
          ((registration_details).subscribe(
            r =>  r,
            error => this.errorMessage = <any>error,
            () => {  });

错误是什么?您是否检查了“网络”选项卡?您是否在“网络”选项卡中找到条目?您是否检查了url是否位于发布数据的正确位置?您在哪里调用订阅功能?我认为您没有在组件上调用订阅,这就是问题所在。请查看我的答案,并让我知道它是否有帮助网络选项卡未显示请求,控制台选项卡中没有错误,我不确定我是否知道在哪里或如何订阅Observables。这意味着它没有被调用,正如我在回答中提到的,请尝试一下,希望它能工作。我在开始angular2时遇到了同样的问题。没有订阅什么都不会发生。我的组件上有一个名为errorMessage的字符串属性