gpt4 book ai didi

jquery - 使用 django 1.10.5 的 Ajax Post 请求错误

转载 作者:行者123 更新时间:2023-11-30 22:32:41 24 4
gpt4 key购买 nike

在过去一周左右的时间里,我一直在努力成功实现 jQuery ajax 请求,将数据从 ananalgoals.html 中的 javascript 函数传递到 django View ,以便将数据保存到我的数据库。目前我只是尝试通过在 django 端打印数据来测试数据传输。

我已经检查了以下线程,但看不到任何显示与我所看到的相同错误的线程(我几乎肯定错过了一些明显的东西)。

Forbidden (CSRF token missing or incorrect) Django error

"CSRF token missing or incorrect" while post parameter via AJAX in Django

虽然缺少 CSRF token 是我的第一个问题,但 StackOverflow 和 django 文档上的答案很好地解释了必须做什么才能确保包含 csrf token 。但是,当按照建议的步骤操作时,我收到以下 django 错误:

response.set_cookie(settings.CSRF_COOKIE_NAME,AttributeError:“NoneType”对象没有属性“set_cookie”

我的代码如下:

年度目标.html

function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie !== '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}

function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}

var data = [1, 2, 3, 4]
var csrftoken = getCookie('csrftoken');

// Ajax Setup

$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});

// Ajax Call

$.ajax({
type: 'POST',
url: "{% url 'LifeAdmin:saveAnnualGoals' %}",
data: {'data[]': data},
});

View .py

@ensure_csrf_cookie
@login_required
def saveAnnualGoals(request):
if request.method == 'POST':
data = request.POST.get('data')
print(data)

url.py

url(r'^saveAnnualGoals$', views.saveAnnualGoals, name='saveAnnualGoals')

我正在使用 Django 1.10.5 和 Python 3.6.1

任何帮助将不胜感激!!

谢谢:)

最佳答案

您的 View 需要返回响应。使用您的实际代码, View 不会返回任何内容,因此None。然后 Django 尝试将 cookie 添加到响应中,但由于它是 None,您会收到您发布的错误消息。

示例:

return HttpResponse(status=200)

关于jquery - 使用 django 1.10.5 的 Ajax Post 请求错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45387677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com