当前位置: 首页 > 知识库问答 >
问题:

拒绝从URL执行脚本,因为其MIME类型(“应用程序/json”)不可执行,并且启用了严格的MIME类型检查

蒙奇
2023-03-14

我试图在Angular 4 Universal应用程序中从谷歌检索联系人。

但是,一旦完成身份验证,我将收到此错误消息:

拒绝执行https://www.google.com/m8/feeds/contacts/default/full?access_token=TOKEN脚本

目前,所有内容都保存在一个组件中:

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);
     });
  }
}

我从这个示例中获得的代码运行良好,没有发生此错误。所以我只能猜测角度对某些事情有影响。。。。

共有1个答案

洪富
2023-03-14

GoogleContactsAPI文档中有一个链接,指向alt标记的工作方式。值“json”并不表示它将返回JSONP数据。Google返回MIME类型,因为它提供给您的数据是不可执行的。

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

尝试使用@角/超文本传输协议标准get方法,而不是Jsonp

 类似资料: