You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Kiwi-Coin公开API时出现No 'Access-Control-Allow-Origin' header错误求助

解决Kiwi-Coin API的跨域(CORS)问题

你遇到的No 'Access-Control-Allow-Origin' header错误,本质是浏览器的同源策略在起作用——当你在前端页面直接请求Kiwi-Coin的API时,浏览器会检查目标服务器返回的响应头,发现没有允许当前域名访问的Access-Control-Allow-Origin字段,就会阻止请求结果返回给页面。下面给你几个实用的解决办法:

1. 搭建后端代理(最推荐,适合生产环境)

浏览器的跨域限制只针对前端发起的请求,后端服务器之间的请求不受这个限制。所以你可以自己写一个简单的后端接口作为中间层,前端请求自己的后端,后端再去调用Kiwi-Coin的API,最后把结果返回给前端。

举个Node.js + Express的例子:

const express = require('express');
const axios = require('axios');
const app = express();

// 代理接口,前端请求这个地址
app.get('/api/kiwi-ticker', async (req, res) => {
  try {
    // 后端请求Kiwi-Coin的API
    const apiResponse = await axios.get('https://kiwi-coin.com/api/ticker/');
    // 将结果返回给前端
    res.json(apiResponse.data);
  } catch (error) {
    res.status(500).json({ error: '获取Kiwi-Coin数据失败' });
  }
});

app.listen(3000, () => {
  console.log('代理服务器运行在3000端口');
});

然后修改你的前端请求代码,指向自己的代理接口:

$.ajax({
  type: "GET",
  url: "http://localhost:3000/api/kiwi-ticker",
  success: function(data) {
    // 处理返回的行情数据,比如渲染页面
    console.log('最新BTC价格:', data.last);
    console.log('24小时成交量:', data.volume);
  },
  error: function(err) {
    console.error('请求失败:', err);
  }
});

2. 尝试使用JSONP(仅当API支持时有效)

有些公开API会支持JSONP方式绕过跨域,你可以修改ajax请求的dataType为jsonp试试:

$.ajax({
  type: "GET",
  url: "https://kiwi-coin.com/api/ticker/",
  dataType: "jsonp", // 指定为JSONP类型
  success: function(data) {
    console.log(data);
  },
  error: function(err) {
    console.error('JSONP请求失败,可能API不支持:', err);
  }
});

注意:如果Kiwi-Coin的API本身没有实现JSONP支持,这个方法就会失效,你可以先测试一下。

3. 浏览器插件临时绕过(仅用于开发调试)

如果只是在本地开发测试,你可以安装浏览器的CORS禁用插件,比如Chrome的「Allow CORS: Access-Control-Allow-Origin」。开启插件后,浏览器会暂时跳过跨域检查,让你能直接请求API。但这个方法绝对不能用于生产环境,因为用户不会特意安装这个插件。


内容的提问来源于stack exchange,提问作者user29357

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:31:04