首页 > 解决方案 > 对 Python 方法的 AJAX POST 请求 - 发布命中正确的文件位置,但显示 404

问题描述

我一直在研究如何将 AJAX 调用集成到 Python Django 应用程序中,而且我对两者都有些陌生。我一直在遵循这里的建议:

https://www.quora.com/Can-I-execute-a-Python-function-from-JavaScript

这分别导致了 AJAX 和 Django 建议的这个这个。两者对我来说都很有意义。期望的最终结果是第四个文件夹(仪表板)中的模板调用其上方 api 文件夹下名为 logic.py 的文件中的函数:

在此处输入图像描述

在连接到我的 django 模板的 JavaScript 文件中,我从上面列出的 AJAX 资源中窃取了以下代码,并对以下代码进行了一些简单的编辑:

window.onerror = function() {
  debugger;
}

// browser - safety
var request;

if (window.XMLHttpRequest) {
  request = new XMLHttpRequest();
} else if(window.ActiveXObject) { // ie
  try {
    request = new ActiveXObject('Msxml2.XMLHTTP');
  }
  catch(e) {
    try {
      request = new ActiveXObject('Microsoft.XMLHTTP');
    }
    catch(e) {}
  }
}

function step2() {
  console.log('something');
}


function testLogin() {
  request.open('POST', '../../../api/logic');
  // I've also been trying ^^^ logic.py, if it matters
  request.send(null);
  console.log('testLogin ran');

  step2();
}

request.onreadystatechange = function () {
  if(request.readystate === 4) {
    if(request.status === 200) {
      console.log(request.responseText);
    }
  }
}

它仍然连接到 django 视图中的 URL POST 操作,所以当我点击有问题的提交按钮时,我看到生成了以下两个请求: 在此处输入图像描述

这是该位置的正确文件路径:

在此处输入图像描述

所以我想知道我是否遗漏了关于 AJAX 设置的内容,或者它需要与 Django 交互的方式,或者两者的某种组合。我一直在咨询的其他资源:

从 Javascript 代码调用 Python 函数 https://codehandbook.org/python-flask-jquery-ajax-post/ https://www.makeuseof.com/tag/python-javascript-communicate-json/ https://bytes。 com/topic/javascript/answers/737354-how-call-python-function-javascript

而且我最初是在当天早些时候开始的,所以还有更多,但不用说,我没有立即看到我的问题。任何帮助深表感谢。

标签: javascriptpythonajaxdjango

解决方案


所以这最终成为 Django url 设置的一个怪癖,我不敢相信我没有弄明白,但我已经有一段时间没有进入代码库的那部分了。

在我们的 urls.py 脚本中,我正在 ping 的地方(在所描述的 URL 的位置)有一个重定向,因此,流量并没有到达我想的地方。


推荐阅读