javascript - 对 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
而且我最初是在当天早些时候开始的,所以还有更多,但不用说,我没有立即看到我的问题。任何帮助深表感谢。
解决方案
所以这最终成为 Django url 设置的一个怪癖,我不敢相信我没有弄明白,但我已经有一段时间没有进入代码库的那部分了。
在我们的 urls.py 脚本中,我正在 ping 的地方(在所描述的 URL 的位置)有一个重定向,因此,流量并没有到达我想的地方。
推荐阅读
- android - 启动 BLUETOOTH_SETTINGS 操作返回 SecurityException(需要 BLUETOOTH_ADMIN 权限)
- python - 容器化的 python 应用程序无法连接到在 Docker 容器上运行的 RabbitMQ 服务器
- java - 在原始文件夹中查找文件的路径?
- excel - 有没有办法为动态范围应用填充公式?
- authentication - Mosquitto websockets 安全最佳实践
- fullcalendar - Fullcalendar 4:将 Json Feed 与 MVC 结合使用
- ruby-on-rails - Rails 自动加载嵌套类:LoadError(无法自动加载常量 ModuleName::ClassName)
- sql-server - 通过Powershell执行存储过程后转换日期格式?
- python - Python npzFile 对象非常慢
- c# - 不等待从 UnhandledException 处理程序调用的异步方法