gpt4 book ai didi

ajax - Django Ajax-Jquery 不获取数据

转载 作者:行者123 更新时间:2023-12-01 07:16:26 25 4
gpt4 key购买 nike

我无法通过 jQuery-Ajax 方法从表单中获取 ID 为 city_name 的输入文本字段数据。

我不断收到的错误是“NetworkError: 403 FORBIDDEN - http://127.0.0.1:8000/dashboard”

我知道如何使用hidden字段类型获取数据,但该选项不能在这里使用,而且,从hidden字段获取数据现在是一种过时的方法。那么,如何使用 Django-AjaxJquery 方法获取数据。

HTML

<form type = "POST">
{% csrf_token %}
<input type="text" placeholder = "Enter City Name" id = "city_name">
<input type="button" value = "On" id="on">
<input type="button" value = "Off" id="off">
</form>

JS 文件

$(function(){

$("#on").click(function (event) {
event.preventDefault();

$.ajax({
type: "POST",
url: "dashboard",
data : {
'city_name' : $("#city_name").val(),
},

});
});
});

View.py

@login_required
def dashboard(request):
ctx = {}

if request.is_ajax():
city_name = request.POST['city_name']
print city_name

return render_to_response('dashboard/dashboard.html',ctx, context_instance = RequestContext(request))

urls.py

urlpatterns = patterns('',
url(r'^dashboard$','apps.dashboard.views.dashboard', name = 'llumpps_dashboard'),

)

最佳答案

请求中缺少 CSRF token 。

您可以为您的 View 使用 @csrf_exempt 装饰器,例如:

@login_required
@csrf_exempt
def dashboard(request):
...

或者将 token 与请求一起发送:

$.ajax({
type: "POST",
url: "dashboard",
data : {
'csrfmiddlewaretoken': $('input[name="csrfmiddlewaretoken"]').val();
'city_name' : $("#city_name").val(),
},
complete: function () {
// do whatever here
}
});

在 Django 中了解有关 CSRF 和 AJAX 的更多信息:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax

希望有帮助。

关于ajax - Django Ajax-Jquery 不获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18397100/

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