2017-07-12 7 views
1

Angular 4 Universalアプリ内でGoogleから連絡先を取得しようとしています。MIMEタイプ( 'application/json')が実行可能でなく、厳密なMIMEタイプチェックが有効になっているため、URLからスクリプトを実行することを拒否しました

しかし、認証が行われた後、私は、このエラーメッセージが表示されます。

は、そのMIMEタイプ(「アプリケーション/ JSON」)が実行可能ではないので https://www.google.com/m8/feeds/contacts/default/full?access_token=TOKEN&alt=json からスクリプトを実行するために拒否し、 厳格なMIMEタイプチェックが有効になっています。すべてが一つの成分で開催された瞬間に

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

@Component({ 
    selector: 'refer-friend', 
    templateUrl: './referFriend.component.html', 
}) 
export class ContactsComponent implements OnInit { 
    constructor(private jsonp: Jsonp) { } 
    ngOnInit(): void { 
    this.auth(); 
    } 
    auth() { 
    gapi.auth.authorize({ 
     'client_id': 'CLIENTID.apps.googleusercontent.com', 
     'scope': 'https://www.google.com/m8/feeds' 
    },() => { 
     this.fetch(gapi.auth.getToken()); 
    }); 
    } 
    fetch(token: any) { 
    this.jsonp.get('https://www.google.com/m8/feeds/contacts/default/full?access_token=' + token.access_token + '&alt=json') 
    .map(data => { 
     return data; 
    }) 
    .subscribe(data => { 
     console.log(data); 
    }); 
    } 
} 

私はこのエラーが起こっなしで正常に動作コードfrom this sampleを得ました。だから、私はAngularが何かを起こしていると推測できるだけです....

+0

本当に重複していませんか? https://stackoverflow.com/questions/36289495/how-to-make-a-simple-jsonp-asynchronous-request-in-angular-2 – JGFMK

+1

マップ内のデータも返されません。レスポンスをhttps://www.w3.org/Protocols/rfc2616/rfc2616-sec6.htmlからjsonペイロードに変換するなどの処理を行うために使用されます。レスポンスにはHTTPヘッダーなどが含まれていますので、map(response:Response => response) json())。あなたはまた、サービスにそれをObservableとして返す必要があります。理想的には、インターフェイスまたはドメインモデルクラスです。あなたがフィードを購読しているのが分かります。コンポーネントは、@ Injectableで注釈付けされたそのサービスをコンポーネントコンストラクタのプライベートパラメータとして挿入し、@ ngModuleプロバイダに接続します:app-module.ts – JGFMK

+0

の[]、コンポーネントは... this.service.subscribe (data => this.data = data); – JGFMK

答えて

2

Google Contacts APIのドキュメントにaltタグの仕組みへのリンクがあります。値 'json'は、JSONPデータを返すことを示していません。 Googleから返されるデータは実行可能ではないため、MIMEタイプが返されます。

https://developers.google.com/gdata/docs/2.0/reference

代わりJsonp@angular/http標準getメソッドを使用してみてください。

+0

あなたは正しかった、ありがとう!私はJSONPをAJAX呼び出しに使用していたので、これを基にした例と混乱していると思います。 –

関連する問題

 関連する問題