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

已安装django-cors-headers仍遇跨域错误?求无插件解决方案

解决前端调用Bittrex API的跨域问题(无需插件)

首先得明确:你之前踩的坑是对django-cors-headers的作用理解偏了——它是用来解决你的Django后端和前端之间的跨域问题的,管不到第三方API(比如Bittrex)的CORS配置。你直接让前端请求Bittrex的接口,对方服务器根本没给你的域名开跨域权限,所以浏览器必然拦截,这和你装没装django-cors-headers没关系。

下面给你一个靠谱的无插件解决方案,本质是用你的Django后端做请求代理:

方案:Django后端转发请求

让前端请求你自己的Django接口,再由Django后端去调用Bittrex的API,最后把结果返回给前端。因为后端之间的请求不受浏览器跨域规则限制,完美避开这个问题。

步骤1:创建代理视图

在你的Django app的views.py里添加以下代码:

import requests
from django.http import JsonResponse

def bittrex_ticker_proxy(request):
    # 从前端获取market参数(支持动态传参,默认usdt-btc)
    market = request.GET.get('market', 'usdt-btc')
    # 构造Bittrex的API地址
    bittrex_api_url = f"https://www.bittrex.com/api/v1.1/public/getticker?market={market}"

    try:
        # 后端发起请求到Bittrex
        response = requests.get(bittrex_api_url)
        # 把Bittrex的响应原封不动返回给前端
        return JsonResponse(response.json(), safe=False)
    except Exception as e:
        # 处理请求异常(比如网络问题)
        return JsonResponse({'error': str(e)}, status=500)

步骤2:配置路由

在项目的urls.py里添加代理接口的路由:

from django.urls import path
from your_app_name.views import bittrex_ticker_proxy  # 替换成你的app名

urlpatterns = [
    # 其他已有路由...
    path('api/proxy/bittrex-ticker/', bittrex_ticker_proxy, name='bittrex_ticker_proxy'),
]

步骤3:修改前端AJAX请求

把原来直接请求Bittrex的地址改成你的Django代理接口:

// 原来的错误写法
// $.ajax({ url: "https://www.bittrex.com/api/v1.1/public/getticker?market=usdt-btc", ... })

// 修改后的正确写法
$.ajax({
    url: "/api/proxy/bittrex-ticker/?market=usdt-btc",
    method: "GET",
    success: function(data) {
        console.log("获取到行情数据:", data);
        // 这里处理你的业务逻辑
    },
    error: function(err) {
        console.error("请求失败:", err);
    }
});

额外提醒

  • 确保你的Django环境安装了requests库,没装的话执行pip install requests
  • 如果需要调用更多Bittrex接口,可以扩展这个代理视图,或者写一个通用的代理函数
  • 建议给代理请求加缓存(比如用Django的缓存框架),避免频繁请求第三方API,减轻服务器压力

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:31:08