2016-12-28 10 views
9

कुछ डेटा के साथ, मेरे सर्वर पर एक साधारण पोस्ट करने की कोशिश कर रहा है और इसे कुछ JSON डेटा वापस कर दिया है।कोणीय 2 Http.Post अनुरोध नहीं भेज रहा

import { Injectable } from '@angular/core'; 
 
import { Headers, Http, Response} from '@angular/http'; 
 
import {Observable} from 'rxjs/Rx'; 
 

 
// Import RxJs required methods 
 
import 'rxjs/add/operator/map'; 
 
import 'rxjs/add/operator/catch'; 
 

 
@Injectable() 
 
export class ApiService { 
 

 
\t private headers = new Headers({'Content-Type': 'application/json'}); 
 
    \t private myUrl = 'https://www.mywebsite.com'; // URL to web api 
 
    \t private payLoad = {"thingy1":"Value1", "thingy2":"value2"}; 
 

 
    \t constructor(private http:Http) { } 
 

 
    \t getData() { 
 
     this.http.post(this.myUrl, JSON.stringify(this.payLoad), this.headers) 
 
     \t .map((res:Response) => res.json()) 
 
      .catch((error:any) => Observable.throw(error.json().error || 'Server error')); 
 
    } 
 

 
}

(वर्तमान में, यह कॉल के माध्यम से चलता है, लेकिन मैं अपने नेटवर्क टैब पर कुछ भी नहीं देखते हैं कि यह वास्तव में यह करने की कोशिश की?)

मेरे सेवा (api.service.ts)

तब मेरे पास अभी इसे प्राप्त करने के लिए हेडर घटक में getData विधि चल रही है। (header.component.ts)

import { Component, OnInit } from '@angular/core'; 
 

 
//Service 
 
import { ApiService } from '../services/api.service'; 
 

 

 
@Component({ 
 
    selector: 'app-header', 
 
    templateUrl: './header.component.html', 
 
    styleUrls: ['./header.component.scss'] 
 
}) 
 

 
export class HeaderComponent implements OnInit { 
 

 
    constructor(private service:ApiService) { 
 
    this.service.getData(); //Fire getData from api.service 
 
    } 
 

 
    ngOnInit() { } 
 

 
}

उत्तर

12

नमूदार आलसी हैं, भले ही आप उन्हें प्रारंभ, वे निष्पादित नहीं किया जाएगा। उस स्ट्रीम को सुनने के लिए कम से कम एक ग्राहक को subscribe स्पष्ट रूप से देखना होगा। संक्षेप में: जब आप इसकी सदस्यता लेते हैं तो उन्हें केवल तभी निष्पादित किया जाएगा।

this.service.getData().subscribe(
    (data) => console.log(data) 
); 
+0

कुछ यह है कि यह निश्चित रूप से, मैं GetData विधि में लौटने को जोड़ने के लिए किया था किया था। मैन ... गंभीरता से इस दिन के साथ खराब हो रहा है। पता नहीं क्यों मैं बस पहले ढेर आया हूँ .. बहुत बहुत धन्यवाद! – Starboy

+0

@ स्टारबॉय कोई चिंता नहीं, जो हमारे साथ होता है (देव), धन्यवाद :) –

2

करें कि आप अपने नमूदार डेटा सदस्यता लेने के कर रहे हैं। आरएक्सजेएस पर्यवेक्षक के पास 2 भाग हैं,

  • अगला() - यह डेटा को कोणीय द्वारा किया जाता है जो धक्का देता है।
  • सदस्यता लें - आपको देखने योग्य डेटा प्राप्त करने के लिए अपने घटक में आवश्यकता है।

कोशिश नीचे

this.service.getData().subscribe(
    (data) => { 
    //process your data here 
    } 
); 
+1

देखने योग्य डेटा से डेटा कैसे प्राप्त करें और फिर से देखने योग्य के रूप में भेजें। एक बार जब हम सब्सक्राइब करते हैं, तो वापसी का प्रकार बदल जाता है। –

+0

आप .map() का उपयोग कर सकते हैं और फिर वापस आ सकते हैं। यह डेटा प्राप्त करेगा और रिटर्न प्रकार को देखने योग्य होगा। –

संबंधित मुद्दे