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

Axios向Django接口发起请求时出现OPTIONS替代POST问题求助

问题根因

OPTIONS请求是跨域场景下浏览器自动发起的预检请求,本身属于正常行为。你遇到的问题核心来自前端Axios请求的配置错误:

  • Axios的请求配置中,请求头的配置键为复数headers,你的代码里写成了单数header,导致自定义的Content-Type: application/json没有生效,预检请求完成后后续POST请求无法正常发起,直接断连出现Broken pipe报错。
修复代码
async save() {
  let data = {
    "name": this.name,
    "title": this.title,
  }
  let config = {
    // 将单数header改为复数headers
    headers : {
      "Content-Type": "application/json",
    }
  }   
  // 补充response的变量声明,避免全局变量污染
  const response = await axios.post(
    'http://127.0.0.1:8000/save/',
    data,
    config
  )
}
补充排查点

如果修改后仍有异常,可按以下顺序排查:

  • 给请求包裹try/catch块,捕获前端控制台的具体报错信息,确认是否有其他参数异常
  • 确认请求路径末尾的斜杠和后端路由配置完全一致,Django默认开启APPEND_SLASH校验,路径不匹配会触发301重定向,导致POST请求异常
  • 检查是否配置了全局Axios拦截器,是否存在拦截器篡改请求头、请求地址的逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:21:00