2010-06-08 2 views
5

У меня есть следующий запрос JQuery Ajax на моем шаблоне, что я хочу перейти на мой взгляд ДжангоКак получить запрос ajax с помощью 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);} 
      }); 
     } 

мой взгляд Джанго выглядит следующим образом:

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" 

Когда я вызова функции Ajax я получаю следующее сообщение об ошибке:

ошибка: [объект XMLHttpRequest]

и на стороне джанго я получаю следующую ошибку:

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 

Что мне не хватает на этот звонок?

Gath

ответ

6

Я думаю, что проблема сериализации словаря. Когда я тестировал код, я редактировал его, чтобы посмотреть, как это и это сработало:

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") 

Кроме того, убедитесь вы передаете в значении для заголовка в строке запроса GET. Я также столкнулся с этим (возможно, потребуется проверка ошибок). Это помогает, если вы используете инструмент Firebug или даже Webkit Inspector. Таким образом, вы можете просматривать страницы ошибок HTML, возвращаемые Django из вашего запроса XHR.

+0

круто, он сработал. Благодарю. – gath

+0

@ jcady- «Также убедитесь, что вы передаете значение для заголовка в строке запроса GET ..» Что это значит? В заданном вопросе человек использует POST !! – David

+0

очень много спасибо @jcady: D: D –

Смежные вопросы