CORS 策略:预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 tron-pro-api-key

问题描述 投票:0回答:1

我对 trongrid 有疑问。我不知道该怎么办。在trongrid上我创建API并将其放入index.js 我应该在 trongrid 上的 api 设置上进行什么配置?

控制台

enter image description here

Access to XMLHttpRequest at 'https://api.shasta.trongrid.io/wallet/getnodeinfo' from origin 'http://localhost:3000' has been blocked by CORS policy: Request header field tron-pro-api-key is not allowed by Access-Control-Allow-Headers in preflight response.

这是我的index.js

const TRONGRID_SHASTA_API = 'https://api.shasta.trongrid.io';

const HttpProvider = TronWeb.providers.HttpProvider;
const fullNode = new HttpProvider(TRONGRID_SHASTA_API);
const solidityNode = new HttpProvider(TRONGRID_SHASTA_API);
const eventServer = new HttpProvider(TRONGRID_SHASTA_API);
const privateKey = "c4f27f7b0523507**********************ecddfb21c891";
const tronWeb = new TronWeb(fullNode, solidityNode, eventServer, privateKey);
tronWeb.setHeader({'Content-Type': 'application/json',
    'Access-Control-Allow-Headers': '*',
    'Access-Control-Allow-Origin': '*',
    'TRON-PRO-API-KEY': '6ad9cb75-****-4f4c-a9cf-2156aa5e8453'});



async function triggercontract(){
    console.log("trx:", tronWeb.trx);
    console.log(tronWeb.transactionBuilder);
    console.log(tronWeb.utils);
    let instance = await tronWeb.contract().at("TNS*******tST9zAqXXssho5hgZ");
    let res = await instance.f().call();
    let res1 = await instance.g().call();
    console.log("res", res);
    console.log("res1", res1);
}

更新1: 我明白:我有简单的react-app,当我在 localhost:3000 上启动它时,它向 api.shasta.trongrid.io/..... 发出请求,但发出发布请求,但 api.shasta.trongrid.io不授予对此本地主机的访问权限,因为我没有 cors,但如何正确设置它的 cors 以使其项目正常工作? 更新2: enter image description here 为什么我的浏览器只是从这个链接获取信息,但react-app却不能?我该怎么办?

reactjs blockchain solidity
1个回答
0
投票

curl --请求 GET https://api.trongrid.io/wallet/getnowblock --header 'TRON-PRO-KEY:05513683-56a6-40f7-a197-bea0abc5e2e7'

© www.soinside.com 2019 - 2024. All rights reserved.