2016-02-27 14 views
12

से त्रुटि संदेश प्राप्त मैं मेरी सेवा में निम्न कोडकोणीय 2 http

myService.ts

makeHttpGetRequest(url){ 

     return Observable.interval(config.SUPERVISOR_REFRESH_INTERVAL * 1000) 
      .switchMap(() => this.http.get(url)) 
      .map(res => res.json()) 
      .timeout(config.REQUEST_TIMEOUT * 1000, new Error('Time out occurred')) 

    } 

मेरी घटक फ़ाइल में

myComponent.ts

ngOnInit(){ 
     this._myService.makeHttpGetRequest(myurl) 
      .subscribe(
       data => { 
        this.supervisorServers = data; 
        } 

       }, 
       error => { 
        this.error = true; 
        console.log(error); //gives an object at this point 
        this.showError(error); 
       } 
      ); 
    } 

उदाहरण के लिए त्रुटि संदेश मुद्रित करना चाहता हूं Invailid यूआरएल।

Object { _body: error, status: 200, statusText: "Ok", headers: Object, type: 3, url: null } 

यदि मैं यह खोलते हैं, तो मुझे त्रुटि संदेश नहीं मिल सकता है: जब मैं त्रुटि प्रिंट, मैं एक वस्तु (शायद प्रतिक्रिया ऑब्जेक्ट) निम्नलिखित की तरह मिलता है। क्या प्राथमिकता त्रुटि संदेश प्राप्त करने का कोई बेहतर तरीका है?

उत्तर

9

त्रुटि इस मामले में भी प्रतिक्रिया के शरीर में निहित है। देखें त्रुटि ईवेंट हैंडलर onError समारोह:

error => { 
    this.error = true; 
    console.log(error.json()); //gives the object object 
    this.showError(error.json()); 
} 

संपादित

मैं एक जांच:

आप प्रतिक्रिया पर json पद्धति का उपयोग करके उस तक पहुँच सकते थोड़ा और अधिक मुद्दा। वास्तव में, आपके पास सही संदेश नहीं हो सकता है। मेरा मतलब है net::ERR_NAME_NOT_RESOLVED। एक्सएचआर इसे प्रदान नहीं करता है। उस ने कहा, आप देख सकते हैं कि XHR का status0 है। यह एक संकेत हो सकता है कि अनुरोध भेजते समय अनुरोध में कोई समस्या थी (यह वास्तव में नहीं भेजा गया है)।

+0

उत्तर के लिए धन्यवाद:

error => { (...) var err = error.json(); var status = err.currentTarget.status; (...) } 

इस प्रश्न देखें। मैं उस तक पहुंच सकता हूं। लेकिन उदाहरण के लिए जब मेरे पास एक अवैध यूआरएल है, तो मुझे प्रतिक्रिया के शरीर में त्रुटि संदेश नहीं दिखाई दे रहा है। यूआई पर दिखाने के लिए एक त्रुटि संदेश प्राप्त करना संभव है? – user3288346

+0

आपका स्वागत है! वास्तव में, आपके पास सटीक संदेश नहीं हो सकता क्योंकि यह XHR ऑब्जेक्ट के भीतर पहुंच योग्य नहीं है। उस ने कहा, आप इस ऑब्जेक्ट के 'स्टेटस' फ़ील्ड पर भरोसा कर सकते हैं ... मैंने अपना जवाब अपडेट किया। –

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