Сервер разработки Django не обрабатывает ajax-запрос - PullRequest
5 голосов
/ 04 февраля 2011

Я делаю простой запрос ajax, но по какой-то причине request.is_ajax возвращает false. Я использую jquery и сервер разработки Django.

    $('#save').click(
function()
{
    $.ajax({
    type: "POST",
    url: "/order/start",

    });

});

А в views.py

if request.POST and 'save' in request.POST :
    if request.is_ajax()== True:

Но это не возвращает истину, и на runserver я вижу ошибки

Exception happened during processing of request from ('127.0.0.1', 1625)
Traceback (most recent call last):

  File "c:\python27\lib\SocketServer.py", line 284, in _handle_request_noblock
    self.process_request(request, client_address)
  File "c:\python27\lib\SocketServer.py", line 310, in process_request
    self.finish_request(request, client_address)
  File "c:\python27\lib\SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "c:\python27\lib\site-packages\django\core\servers\basehttp.py", line 56
, in __init__
    BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
  File "c:\python27\lib\SocketServer.py", line 641, in __init__
    self.finish()
  File "c:\python27\lib\SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "c:\python27\lib\socket.py", line 301, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 10053] An established connection was aborted by the software in y
ur host machine

1 Ответ

15 голосов
/ 04 февраля 2011

Полагаю, что у вас включено стандартное промежуточное программное обеспечение, а settings.APPEND_SLASH - True (по умолчанию), что означает, что POSTing на "/order/start" автоматически перенаправляет на "/order/start/" с косой чертой, теряя POST в процессе.*

Убедитесь, что URL в вашем JS заканчивается косой чертой.

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