对Python方法的AJAX POST请求-帖子命中了正确的文件位置,但显示404

时间:2018-06-19 23:58:04

标签: javascript python ajax django

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

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

AJAX和Django建议分别导致了thisthis。两者对我来说都非常有意义。理想的最终结果是,该第四个文件夹下的模板(仪表板)在其上面的api文件夹下的名为logic.py的文件中调用一个函数:

enter image description here

在连接到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操作挂钩,因此当我按下有问题的“提交”按钮时,我看到生成了以下两个请求: enter image description here

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

enter image description here

所以我想知道我是否缺少有关AJAX设置,它与Django交互的方式或两者的某种组合的东西。我一直在研究的其他资源:

Call Python function from Javascript code 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

我本来是从今天的早些时候开始的,所以还有更多,但不用说我从看任何一个都没有立即看到我的问题。任何帮助深表感谢。

1 个答案:

答案 0 :(得分:0)

所以这最终成为Django URL设置的一个怪癖,我不敢相信我没有弄清楚它,但是我已经有一段时间没有进入代码库了。

在我们的urls.py脚本中,我正在ping的位置(位于所描述的URL的位置)上具有重定向,因此,流量没有到达我认为的位置。