2016-09-26 38 views
0

我正在研究鉻擴展。目前,它只是檢查用戶是否存在。AJAX保持檢測失敗,但沒有顯示錯誤

在插件彈出窗口中有一個窗體。用戶使用他的用戶名和密碼填寫此表單,並將其發送到服務器。

用戶在查看發現,一切看起來正常運行,但AJAX出於某種原因返回失敗。

這是一個觀點:

@csrf_exempt 
def api_authentication(request): 
    if request.method == 'POST': 
     login = request.POST.get('login') 
     password = request.POST.get('password') 
     if login and password: 
      username = login 
      if '@' in login: 
       username = mainapp_models.User.objects.get(email=login).username 
       if not username: 
        return JsonResponse({'success':0}) 
      user = authenticate(username=username,password=password) 
      print user # IT's ok, user is found 
      if user: 
       return JsonResponse({'username':user.username, 
            'success':1}) 
    return JsonResponse({'success':0}) 

這是AJAX:

$(document).ready(function() { 

    $('#login-button-id').click(function() { 

     var login = $('#input-email-id').val(); 
     var password = $('#input-password-id').val(); 
     $.ajax({ 
      url: 'http://127.0.0.1:8000/api/authenticate', 
      type: 'POST', 
      data: { 
       'login': login, 
       'password': password 
      }, 
      success: function() { 
       alert('success'); 
      }, 
      error: function() { 
       alert('failure'); 
      } 
     }) 
    }) 
}); 

而且JsonResponse看起來是這樣的:{'username': u'milano', 'success': 1}

當我填寫表格併發送數據,user是發現但'失敗'被警告。你知道有什麼問題嗎?

編輯:

警報安迪的回答是:

由於console.log沒有工作,我改成了警報:

error: function (jqXHR, textStatus, errorThrown) { 
       alert("JQuery failed: " + textStatus + " with error thrown: " + errorThrown); 
       alert(jqXHR.responseText); 
      } 

警報:

enter image description here enter image description here

EDIT2

終於找到了控制檯日誌:多個

enter image description here

+0

首先有一個錯字你的發佈代碼,'uccess'而不是'success'。然後,當錯誤callabck被解僱時,你會得到哪個錯誤?! –

+0

我嘗試使用下面答案中的代碼檢查錯誤。它不會記錄任何內容,因此我將日誌更改爲警報。結果在問題的底部。 –

+0

我找到了控制檯日誌。我不得不點擊插件 - 檢查插件,並刪除所有警報,因爲他們刪除檢查窗口。我在問題的底部添加了控制檯日誌。 –

回答

0

有點調試是得心應手。試着改變你的AJAX誤差函數來報告多一點(不多,但它可以幫助):

error: function(jqXHR, textStatus, errorThrown){ 
    console.log("JQuery failed: " + textStatus + " with error thrown: " + errorThrown); 
    console.log(jqXHR); 
    alert('AJAX failed. Check browser console for more info'); 
} 

而且,你從開發服務器(./manage.py的runserver)運行你的Django應用程序?做到這一點,並尋找任何有用的輸出,如堆棧跟蹤。可能是作爲一個錯字或Python代碼

+0

哦,併發布瀏覽器控制檯日誌在這裏,所以我們可以看到它:) –

+0

這就是問題,它不寫入任何東西到控制檯。我正在實時檢查...不知道爲什麼.. –

+0

嗯,沒有大量的幫助。您的瀏覽器中的開發者網絡標籤是什麼作爲響應提供的? –

-1

另一項建議被遺忘的進口一樣簡單 - 看你的Python接近嘗試改變:

if user: 

if user is not None: