Django开发服务器不处理ajax请求

rus*_*kin 5 django

我正在制作一个简单的ajax请求但由于某种原因request.is_ajax返回false.我正在使用jquery和Django开发服务器.

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

    });

});
Run Code Online (Sandbox Code Playgroud)

在views.py中

if request.POST and 'save' in request.POST :
    if request.is_ajax()== True:
Run Code Online (Sandbox Code Playgroud)

但是,它不会返回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
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 15

我猜你已启用标准中间件并且settings.APPEND_SLASH为True(默认值),这意味着POSTing会"/order/start"自动重定向到"/order/start/"斜杠,在此过程中丢失POST.

确保JS中的URL以斜杠结尾.