Good day to all

At each post request I get an error in the browser console: jquery.js:4 POST http://127.0.0.1:8000/send/ 500 (Internal Server Error) . It occurs in the jQuery library in the send method.

Code:

csrf.js:

 function getCookie(name) { var cookieValue = null; if (document.cookie && document.cookie !== '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); if (cookie.substring(0, name.length + 1) === (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } var csrftoken = getCookie('csrftoken'); function csrfSafeMethod(method) { return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); } $.ajaxSetup({ beforeSend: function(xhr, settings) { if (!csrfSafeMethod(settings.type) && !this.crossDomain) { xhr.setRequestHeader("X-CSRFToken", csrftoken); } } }); 

sendMsg.js:

 $(document).ready(function () { $('#message-form').submit(function (event) { event.preventDefault(); var message = $('#message').val(); document.getElementById('message').value = ""; if (message !== '') { $.ajax({ method: 'POST', url: '/send/', dataType: 'text', data: { msg: message }, success: function () { alert("Message sent!"); }, error: function () { alert("Error occured!"); } }); } }); }); 

html form:

 <form class="chat-form" name="message-form" id="message-form" action="" method="post"> {% csrf_token %} <textarea title="message" form="message-form" name="message" id="message" placeholder="Type a message..."></textarea> <input type="submit" value="Send" name="send"> </form> 

views.py:

 class MessageManager(APIView): @csrf_protect def post(self, request): msg = request.POST.get('msg', None) if msg != '': time = str(datetime.time.isoformat) author = request.user.username new_message = Message.objects.create(msg=msg, time=time, author=author) return HttpResponse(json.dumps(new_message), content_type="application/json") return HttpResponse(status=400) 

url:

 url(r'^send/$', views.MessageManager.as_view()) 

Where can there be a mistake?

  • Turn on DEBUG = True , read that the server is responding - andreymal
  • What is in the server logs? - Sergey Gornostaev
  • Obviously an error in json.dumps that can communicate with the list, but not with the queryset. - Mikhail Alekseevich

0