我正在尝试在Angular 4 Universal应用中从Google检索联系人。
但是,一旦完成身份验证,我就会收到此错误消息:
拒绝执行脚本 https://www.google.com/m8/feeds/contacts/default/full?access_token=TOKEN&alt=json 因为它的MIME类型('application / 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 :(得分:2)
Google Contacts API文档包含指向alt标记的工作方式的链接。价值' json'并不表示它将返回JSONP数据。 Google会返回该MIME类型,因为它将为您提供的数据不可执行。
https://developers.google.com/gdata/docs/2.0/reference
尝试使用@angular/http
标准get方法代替Jsonp
。