2010-06-08 49 views
5

Tôi có yêu cầu sau đây JQuery Ajax trên mẫu của tôi mà tôi muốn vượt qua để xem django tôi,Cách nhận yêu cầu ajax bằng django?

function loginUser(){ 
    $.ajax({ 
      type:"POST", 
      url :"/login-user/", 
      data:"title=ajax call", 
      datatype:"json", 
      error:function(data){alert('Error:'+data);} 
      success:function(data){alert('OK!'+data.message+','+data.code);} 
      }); 
     } 

xem django của tôi trông như thế này:

def login_user(request): 
    print "garbage" 
    print request.GET['title'] 
    return_dict = {'message': 'bla bla bla','code':324} 
    json=serialize("json",return_dict) 
    return HttpResponse(json, mimetype="application/x-javascript" 

Khi tôi gọi hàm ajax tôi nhận được các lỗi sau:

lỗi: [đối tượng XMLHttpRequest]

và bên django tôi nhận được lỗi sau:

Traceback (most recent call last): 
    File "c:\python26\lib\site-packages\django\core\servers\basehttp.py", line 281, in run 
    self.finish_response() 
    File "c:\python26\lib\site-packages\django\core\servers\basehttp.py", line 321, in finish_response 
    self.write(data) 
    File "c:\python26\lib\site-packages\django\core\servers\basehttp.py", line 417, in write 
    self._write(data) 
    File "c:\python26\lib\socket.py", line 297, in write 
    self.flush() 
    File "c:\python26\lib\socket.py", line 284, in flush 
    self._sock.sendall(buffer) 
error: [Errno 10053] An established connection was aborted by the software in your host machine 

Tôi đang thiếu gì trong cuộc gọi này?

Gath

Trả lời

6

Tôi nghĩ vấn đề đang sắp xếp theo thứ tự từ điển. Khi tôi kiểm tra mã của bạn, tôi đã chỉnh sửa mã để trông giống như thế này và nó hoạt động:

from django.utils import simplejson 
def login_users(request): 
    print "garbage" 
    print request.GET['title'] 
    return_dict = {'message': 'bla bla bla','code':324} 
    json = simplejson.dumps(return_dict) 
    return HttpResponse(json, mimetype="application/x-javascript") 

Cũng đảm bảo bạn đang chuyển giá trị cho tiêu đề trong chuỗi truy vấn GET. Tôi chạy vào đó là tốt (có thể cần phải được kiểm tra lỗi). Nó giúp ích nếu bạn sử dụng một công cụ như Firebug, hoặc thậm chí là Thanh tra Webkit. Bằng cách đó bạn có thể xem các trang lỗi HTML mà Django đang trở về từ yêu cầu XHR của bạn.

+0

tuyệt, nó đã hoạt động. Cảm ơn. – gath

+0

@ jcady- "Ngoài ra hãy chắc chắn rằng bạn đang chuyển một giá trị cho tiêu đề trong chuỗi truy vấn GET của bạn .." điều đó có nghĩa là gì? Trong câu hỏi, người đó đang sử dụng POST !! – David

+0

rất rất nhiều nhờ @jcady: D: D –

Các vấn đề liên quan