2011-02-04 216 views
5

我正在做一个简单的ajax请求,但由于某种原因request.is_ajax返回false。我正在使用jQuery和Django开发服务器。Django开发服务器不处理ajax请求

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

    }); 

}); 

而且在views.py

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

但是,它没有返回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 

回答

15

我猜你启用了标准的中间件和settings.APPEND_SLASH为真(默认值),这意味着发往"/order/start"的邮件将自动重定向至"/order/start/"并以斜线显示,在此过程中丢失POST。

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

+0

非常感谢!斜线是问题 – ruskin 2011-02-04 09:28:36