首页 > 解决方案 > 无法使用 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'。

我能做些什么?

标签: jsonreactjsapi

解决方案


这不是您的代码的问题,而是您尝试访问的服务器的限制。如响应所示,服务器不允许跨域访问。

我能做些什么?

基本上什么都没有,除了要求 API 的开发人员将您的域(实时,非localhost)添加到允许的来源,或使用您自己的代理服务器。


推荐阅读