2016-10-05 27 views
0

下記の私のjsonp呼び出しを使用して、私はエラーResponse with status: 200 Ok for URLを得ます。私が正しく理解していれば、これは私のゲットリクエストが実際に働いたことを意味します。しかし、データを呼び出す方法はありませんでした。私のデータへのリンクは、下にあるか、またはclicking this linkで見つけることができます。角2 Jsonp Err 200

constructor(private jsonp: Jsonp){} 
stockrun(){ 

this.jsonp.get('http://dev.markitondemand.com/MODApis/Api/v2/Quote/jsonp?symbol=AAPL&callback=myRun') 
    .map(res => res.json()) 
    .subscribe((information) =>{ 
    console.log(information); 
    }); 

} 

コールバックがhttp://dev.markitondemand.com/MODApis/Api/v2/Quote/jsonp?symbol=AAPLのように、存在しないときにデータが異なって編成されているので、私はURLにmyRunに入った理由があります。

myRunを付けずに追加したいと思いますが、私はエラー200コードのみを取得します。しかし、私はcannot find name myRunも得ます。

答えて

0

あなたの応答はJSONではありません。それをunserializingに、あなたはmyRun(と最後)を削除する

this.jsonp.get('http://dev.markitondemand.com/MODApis/Api/v2/Quote/jsonp?symbol=AAPL&callback=myRun') 
    .map(res => { 
     // Get raw text instead of parsed object. 
     let text = res.text(); 

     // Removing myRun(). 
     text = text.substring(6, text.length - 1); 

     // Return manually parsed response. 
     return JSON.parse(text); 
    }) 
    .subscribe((information) =>{ 
     console.log(information); 
    }); 

のようなものを呼び出す必要がありますので、それは、myRun(...)内にカプセル化です。

あなたはsubstring、その後、結果をres.text()代わりにres.json()を呼び出してから、私はあなたのソリューションを試しまし、それは動作しませんJSON.parse()

+0

を呼び出す必要があります – fon

0

answer from this questionが見つかりました。基本的に

var url = 'http://dev.markitondemand.com/MODApis/Api/v2/Quote/jsonp?symbol=AAPL&callback=JSONP_CALLBACK'; 
this.jsonp.get(url) 
.map(res => res.json()) 
.subscribe(data => console.log(data)); 
関連する問題