Javascript 如何处理CORS政策问题?
该项目只是一个前端项目,没有使用服务器端语言,我想从区块链图表中获取实时数据,我已经看到了类似问题和答案的答案,但在其他框架上。尚未为角点指定任何对象。我在src文件夹中创建了一个proxy.conf.json文件,并添加了以下代码,但在检查浏览器时仍然收到相同的错误Javascript 如何处理CORS政策问题?,javascript,html,angular,http,Javascript,Html,Angular,Http,该项目只是一个前端项目,没有使用服务器端语言,我想从区块链图表中获取实时数据,我已经看到了类似问题和答案的答案,但在其他框架上。尚未为角点指定任何对象。我在src文件夹中创建了一个proxy.conf.json文件,并添加了以下代码,但在检查浏览器时仍然收到相同的错误 { "/api/*": { "target": "http://localhost:3000", "secure": false, "logLevel": "debug"
{
"/api/*": {
"target": "http://localhost:3000",
"secure": false,
"logLevel": "debug"
}
}
我已将proxy.conf.jason文件添加到angular.json下的serve部分,但仍不断出现错误:
CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头
这是我的ApiService课程:
import { Injectable } from '@angular/core';
import {HttpClient, HttpHeaders} from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class ApiService {
constructor(private httpclient : HttpClient ) { }
public dailychart(){
return this.httpclient.get('https://api.blockchain.info/charts/transactions-per-second?timespan=5weeks&rollingAverage=8hours&format=json');
}
}
Api.区块链的文档说 查询API纯文本查询API从blockchain.info检索数据 如果在GET请求中添加&CORS=true参数,则某些API调用可与CORS头一起使用 您可以在这里看到其余的文档
这不是配置代理的方式。请看一看,因为它看起来像是您在没有实际配置它的情况下就删除了示例代理。还请注意,您仍然需要处理生产的CORS问题,因为这仅在运行Angular development server时有效 但是,在开发时,您需要更改代理文件,以便定义一个虚拟端点,该端点将假装为实际资源的端点,然后在代码中使用该虚拟端点 因此,您可以将
proxy.conf.json
更改为
{
"/blockchain-info": {
"target": "https://api.blockchain.info",
"secure": false,
"logLevel": "debug"
}
}
和ApiService
到:
import {Injectable} from '@angular/core';
import {HttpClient, HttpHeaders} from '@angular/common/http';
@Injectable({providedIn: 'root'})
export class ApiService {
constructor(private httpclient: HttpClient) {}
public dailychart() {
return this.httpclient.get('/blockchain-info/charts/transactions-per-second?timespan=5weeks&rollingAverage=8hours&format=json');
}
}
您可以看到,我们不尝试直接呼叫
https://api.blockchain.info
。相反,我们将它们添加到我们注册为/blockchain info
的代理中。现在,当Angular看到您向/blockchain info
发出请求时,它将向您的正确URL发出非CORS触发请求(在浏览器之外)。您是如何运行应用程序的?这是构建和部署的版本吗?代理仅在开发模式下工作。@zero298我处于开发模式