我正在尝试使用 ajax 从 django models 访问一些字符串。我是ajax的新手,我不知道我哪里出错了。
这是 Jquery 代码: -
$(document).ready(function () {
$("input.ssd").click(function () {
var lsid = $(this).attr("id");
lsid = Number(lsid);
$.ajax({
type: "POST",
url: "/a_solution/",
data: {
l_sid: lsid,
},
success: console.log("success")
datatype: 'html',
error : console.log("oops! something went wrong"),
});
});
});
以下是urls.py
中的 url 映射:
url(r'^a_solution/$', views.a_detail, name = 'a_detail'),
PS : - jquery.min.js:2 POST http://127.0.0.1:8000/a_solution/ 403(禁止) jquery.min.js:2 XHR加载失败:POST“http://127.0.0.1:8000/a_solution/”
答案 0 :(得分:3)
默认情况下,所有 POST 请求都受CSRF保护(跨站点请求伪造)。因此,您必须发送public void doStuff(String groupname)
{
groups.add(groupname) // groups would be a HashSet<string>
joinGroup(groupname)
}
以及Ajax请求数据。
通常我所做的是在模板中的某处呈现csrf标记(如果你有一个表单放在表单中,但由于它是一个Ajax请求,这个地方并不重要)。
csrfmiddlewaretoken
然后在您的jQuery代码中,您可以访问它。此外,在Ajax调用中,{% csrf_token %}
和success
需要一个函数(使用error
调用可能会导致错误,不确定):
console.log()