【发布时间】:2023-04-08 23:14:02
【问题描述】:
我一直在尝试向我的 Django 视图发送 POST,最终目标是发送“选定”输入(来自单击的#id)并让 Django 发送我可以动态显示的响应。使用 GET 我能够收到响应,但 POST 给我带来了问题(我可以选择 GET,但此时我只想了解为什么我会搞砸 POST……;))
到目前为止,我已经使用了几本指南,但大多数都是关于表单的,老实说,我在阅读文档时遇到了麻烦(我几乎没有编程背景)。
有人能指出我正确的方向吗?
我的 HTML('numberinput' 现在是占位符):
<script>
$("#test").on(click(function () {
numberinput = 8;
$.ajax({
type: 'POST',
url: '{% url "rungenerator" %}',
data: {'numberinput': numberinput},
dataType: 'json',
success: function (inputtype) {
alert(inputtype)
}
})
}))
</script>
<div>
<form method="POST">
{% csrf_token %}
<button type="submit" id="test">Buzzzz Ping</button>
</form>
</div>
观看次数:
def rungenerator(request):
inputtype = "Please make a selection"
if request.method == 'POST':
inputtype = request.POST['numberinput',None]
return JsonResponse(inputtype)
网址:
url(r'^ajax/rungenerator/$', views.rungenerator, name='rungenerator'),
【问题讨论】:
-
什么是错误,你能检查一下响应是什么吗?还要检查这个Ajax 示例。
-
浏览器控制台给了我一个“POST IP#/generator 405(不允许的方法)”(我之前访问过该链接并将再次访问,谢谢)
-
当您只使用相对 url 而不是模板标签时会发生什么?而不是 {% url "rungenerator" %} 只需将 '/ajax/rungenerator/' 作为 url; 405 可能具有欺骗性,通常是由错误的 URL 引起的
-
这也会提示 405。我猜 URLS 不会包含我的问题,因为 GET 确实有效。