POST не происходит в AJAX - PullRequest
       4

POST не происходит в AJAX

0 голосов
/ 24 февраля 2012

У меня есть простая форма для отправки и тестирования 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, и я попробовал много вещей, чтобы решить это снова безрезультатно: (

1 Ответ

2 голосов
/ 24 февраля 2012

Добавьте javascript, описанный в документации для csrf , и это должно решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...