我正在构建一个列出euromillions结果的ionic+angular应用程序,我正在尝试通过外部api获取数据,我不想使用服务器,它只是为了列出api结果,但我正在获取cors块,而我不知道如何解决这个问题,有人能帮我吗?谢谢
lotteries.service.ts
import { Injectable } from '@angular/core';
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { Euromillions } from './lottery.model';
@Injectable({
providedIn: 'root'
})
export class LotteriesService {
private euromillions: Euromillions[] = [
{
id: 'r1',
numbers: '6-14-22-37-45',
stars: '3-7',
draw_info: 'Sorteio Nº076, 22-10-2019'
}
];
constructor(private httpService: HttpClient) { }
getLastEuromillions() {
return [...this.euromillions];
}
getApi() {
return this.httpService.get('https://nunofcguerreiro.com/api-euromillions-json');
}
}lotteries.page.ts
import { Component, OnInit } from '@angular/core';
import { Euromillions } from './lottery.model';
import { LotteriesService } from './lotteries.service';
@Component({
selector: 'app-lotteries',
templateUrl: './lotteries.page.html',
styleUrls: ['./lotteries.page.scss'],
})
export class LotteriesPage implements OnInit {
euromillions: Euromillions[];
constructor(private lotteriesService: LotteriesService) { }
ngOnInit() {
this.lotteriesService.getApi().subscribe((data)=>{
console.log(data);
}
)};
}发布于 2019-09-21 03:47:25
外部浏览器会阻止您的请求。你有两个选择。使用后端接收请求并将其重定向。或者API拥有者允许跨域。请阅读此链接以了解更多详细信息mozila reference
发布于 2019-09-21 06:56:59
AWS的API Gateway将全天候帮助您解决此问题。
当您运行HTTP请求时,从后端(使用js/node)调用模块是一个很好的实践,这将帮助您解决CORS问题。但是,既然可以使用AWS,为什么还要设置服务器/后端呢?
只需几个额外的步骤,您就可以创建一个API来传递请求,然后从您的浏览器调用它,它将向您的页面发送一个跨域允许的响应。
在这里查看我的另一个答案:How to retrieve cross origin volcanic data in xml?
https://stackoverflow.com/questions/58034269
复制相似问题