मैं jQuery ट्यूटोरियल (Link) पर काम कर रहा हूँ, लेकिन खंड पर अटक गया है, "दर ME: उपयोग 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()
);
});
});
});
urls.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)
असल में, एचटीएमएल उपयोगकर्ता को 1 से 5 (कक्षा = रेटिंग के साथ एंकर) के बीच एक विकल्प बनाने के लिए प्रदान करता है। एक बार एक विकल्प क्लिक करने के बाद, #rating div सर्वर से लौटाए गए गणना के परिणाम से ताज़ा हो जाएगा।
समस्या: जब मैं किसी विकल्प पर क्लिक करता हूं तो मुझे "HTTP 500 आंतरिक सर्वर त्रुटि" मिल रही है। अनुरोध फ़ंक्शन को हिट करने से पहले भी त्रुटि होती है, वोट (अनुरोध)। मैंने यह पता लगाने की कोशिश की है कि त्रुटि क्यों है लेकिन इसमें कोई सुराग नहीं है। मुझे नहीं लगता कि सीएसआरएफ के साथ इसका कोई संबंध नहीं है क्योंकि मैं व्यू फ़ंक्शन पर @csrf_exempt का उपयोग कर रहा हूं और MIDDLEWARE_CLASSES से 'django.middleware.csrf.CsrfViewMiddleware' निकाल लिया है।
कृपया आप विशेषज्ञों
आप को देखने के लिए 500 क्या है डिबग मोड को चालू कर सकते हैं: या, सुरक्षित ताकि आप और भी अधिक प्रमुख त्रुटियों फेंक नहीं है होना करने के लिए? –
डीबग मोड पहले से ही है। लेकिन, किसी भी तरह, पृष्ठ बस वही रहता है। – tamakisquare
यदि आप क्रोम में एफएफ या डेवलपर टूल्स में फायरबग का उपयोग करते हैं, तो आप आमतौर पर 500 प्रतिक्रियाओं का पता लगा सकते हैं कि यह क्या कहता है। कंसोल में उस पर क्लिक करने का प्रयास करें। –