json - 无法使用 getJSON 从卡片反人类 API 中获取数据
问题描述
我使用了以下代码:
import { Link, withRouter } from 'react-router-dom';
import { useState, useEffect } from 'react';
import $ from 'jquery';
export default withRouter(function Game() {
const [pack, setPack] = useState(null);
const [blackCards,setBlackCards] = useState([]);
const [whiteCards,setWhiteCards] = useState([]);
useEffect(function() {
setPack(null);
const $xhr = $.getJSON('https://cah.greencoaststudios.com/api/v1/ ', setPack);
return function abort() {
$xhr.abort();
}
}, []);
//setWhiteCards(pack.white);
//setBlackCards(pack.black);
return (
<div>
<p>{pack ? "no": "yes"}</p>
<p>white cards:</p>
<p>black cards:</p>
</div>
);
});
从https://cah.greencoaststudios.com/ 获取数据,我没有得到任何数据和以下注释:
无法加载https://cah.greencoaststudios.com/api/v1/:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问 Origin 'http://localhost:3000'。
我能做些什么?
解决方案
这不是您的代码的问题,而是您尝试访问的服务器的限制。如响应所示,服务器不允许跨域访问。
我能做些什么?
基本上什么都没有,除了要求 API 的开发人员将您的域(实时,非localhost
)添加到允许的来源,或使用您自己的代理服务器。
推荐阅读
- reactjs - 如何开始使用 nextjs 获取每个应用程序的数据
- elasticsearch - 如何根据Kafka消息中的消息字段在elasticsearch上创建索引?
- c++11 - 在方法中返回向上转换的指针时替代堆分配
- python - Pandas:如何重命名多级索引列或创建新列?
- apache-spark - 在不使用操作的情况下对 Spark 进行基准测试
- class - 系统verilog中的空对象访问错误
- jquery - 使用 jQuery 从许多文本框中获取最大值
- android - 如何在android的mpcharts中的水平堆叠条形图中将RightAxis标签旋转到-45度
- javascript - 在 Web 应用程序本地保存数据时选择音频格式
- python - 有没有办法通过ffmpeg中的启用功能在最后3秒在视频中添加drawtext过滤器