从节点请求记录到 Django 端点的双重请求

问题描述 投票:0回答:1

我正在尝试向 django 端点发送 POST 请求。由于 405 错误而失败。检查日志,它似乎收到了 POST 请求,但紧随其后的是 GET 请求并返回 405,因为这是仅 POST 端点。

我已将获取代码剥离回以下 js 脚本:

const fetchData = async() => {
  const response = await fetch("http://localhost:8000/api/auth/user", {
    method: "POST",
    body: {
      test: "test",
    },
    headers: {
      "Content-Type": "application/x-www-form-urlencoded",
    },
  });

  if (!response.ok) {
    const text = await response.text();
    console.log("error", response, text);
  }
  const json = await response.json();
  console.log("json", json);
};

fetchData();

无论我发送什么端点或什么方法,它总是记录一个双重请求。同样有趣的是,如果我发送 PUT 请求,它会记录两个 PUT 请求,对于 GET 甚至 OPTIONS 也是如此。但是,对于所有 POST 请求,第二个请求始终是 GET。再说一次,我到达哪个终点并不重要!我被难住了

我是一名 JS 开发人员,但我可以访问 Django 代码,如果它有助于发布 urls.py 或其中的任何视图?

javascript node.js django django-rest-framework fetch
1个回答
0
投票

事实证明修复非常简单,一周后我仍然在责备自己。 这个“相关问题”帮助我找到了答案 - django-rest-framework - POST 请求返回“不允许使用方法\”GET\”。”

回答 我需要在网址末尾添加一个

/
。服务器正在对末尾缺少
/
的网址执行重定向,并在此过程中丢失一些标头。

© www.soinside.com 2019 - 2024. All rights reserved.