У меня есть простая форма для отправки и тестирования ajax, но она не работает, и я вижу в этом какую-то проблему, я много искал и больше не было указателей - по крайней мере, я не видел;)
в urls.py
(r'^doctors/shahsavand/visiting/$','DrHub.views.visiting'),
(r'^doctors/shahsavand/visiting/add/$','DrHub.views.ajxTest')
первый URL-адрес для перехода на главную страницу, а на главной странице есть эта форма:
<form method='POST' action=".">
{% csrf_token %}
<ul>
<li>
<label for="start">Start Time: </label><input name="id_startTime" id="id_startTime" type="text" />
</li>
<li>
<label for="end">End Time: </label><input name="id_endTime" id="id_endTime" type="text" />
</li>
</ul>
<input type="submit" id="save_button" name="save_button" value="add" />
</form>
и код ajax на этой странице:
<script type='text/javascript' src='/static/DrHub/doctors/shahsavand/js/jquery-1.4.1.js'></script>
<script type="text/javascript">
$.ajax({
type:"POST",
url:"{% url DrHub.views.ajxTest %}",
data: {
'start': $('#id_startTime').val(),
'end': $('#id_endTime').val(),
'csrfmiddlewaretoken':$( "#csrfmiddlewaretoken" ).val()
},
success: function(data){
alert(data);
}
});
</script>
in views.py
:
def ajxTest(request):
if request.is_ajax():
if request.method == 'POST':
return HttpResponse(simplejson.dumps({'message' : 'awesome'}), mimetype='application/javascript')
else:
return render_to_response('DrHub/doctors/nutrition/test.html', context_instance=RequestContext(request))
Я сделал это, чтобы проверить, называется ли ajxTest view
:
def ajxTest(request):
if request.is_ajax():
raise Http404
else:
pass
и это:
def ajxTest(request):
if request.is_ajax():
raise pass
else:
Http404
но безрезультатно, и это звучит как мой ajax POST не связан с ajxTest view
!!!
edit
когда я проверяю firebug, я получаю 403 forbidden error
для CSRF
, и я попробовал много вещей, чтобы решить это снова безрезультатно: (