gpt4 book ai didi

django - jQuery $.post 到 Django 返回 "500 Internal Server Error"

转载 作者:行者123 更新时间:2023-12-03 22:42:55 26 4
gpt4 key购买 nike

我正在学习 jQuery 教程 ( Link ),但一直停留在“评价我:使用 AJAX”部分

jQuery:

 $(document).ready(function() {
// generate markup
$("#rating").append("Please rate: ");

for ( var i = 1; i <= 5; i++ )
$("#rating").append("<a href='#'>" + i + "</a> ");

// add markup to container and apply click handlers to anchors
$("#rating a").click(function(e){
// stop normal link click
e.preventDefault();

// send request
$.post("/vote", {rating: $(this).html()}, function(xml) {
// format and output result
$("#rating div").html(
"Thanks for rating, current average: " +
$("average", xml).text() +
", number of votes: " +
$("count", xml).text()
);
});
});
});

url.py:

urlpatterns = patterns('',
(r'^rating/$', 'ajax_rating.views.rating'),
(r'^vote/$', 'ajax_rating.views.vote'),
)

views.py:

@csrf_exempt
def vote(request):
if request.is_ajax():
rating = request['rating']
f = open('ratings.dat', 'w')
votes = json.load(f)
votes.append(rating)
f.close()
dict = {}
total_rating = sum(votes)
dict['count'] = len(votes)
dict['avg'] = total_rating / dict['count']
return HttpResponse(serializers.serialize('xml', dict), 'application/xml')
else:
return HttpResponse(status=400)

基本上,html 允许用户在 1 到 5 之间进行选择(带有 class= rating 的 anchor )。单击某个选项后,# rating div 将刷新为服务器返回的计算结果。

问题:当我单击某个选项时,收到“HTTP 500 内部服务器错误”。甚至在请求到达 View 函数 vote(request) 之前,错误就会发生。我试图找出错误的原因,但没有任何线索。我认为这与 csrf 没有任何关系,因为我在 View 函数上使用 @csrf_exempt 并从 MIDDLEWARE_CLASSES 中取出了“django.middleware.csrf.CsrfViewMiddleware”。

请帮忙~~谢谢各位专家

最佳答案

我相信 POST 应该转到 URL /vote/ 而不仅仅是 /vote

关于django - jQuery $.post 到 Django 返回 "500 Internal Server Error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5941528/

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