2017-04-23 250 views
1

我正在使用似乎構建在Django上的端點。通過POSTDjango - 未提供身份驗證憑證

試圖建立基本的Ajax通信它,我寫道:

jQuery.ajax({ 
    type: "POST", 
    url: "http://API-ENDPOINT-URL", 
    data: "", 
    dataType: "json", 
    crossDomain: false, 
    beforeSend: function(xhr){ 
      xhr.withCredentials = false; 
      xhr.setRequestHeader('Authorization', 'Token <TOKEN THAT I WAS PROVIDED>'); 
    }, 
    success: function(results) 
    { 
     reqListener(results) 
    } 


}); 

有了這些代碼的一些事情發生了:

  1. 我,因爲我想首先得到了CORS錯誤在我的本地服務器上構建。我安裝了這個chrome extension來繞過它。 (我沒有訪問服務器,以使CORS)

2.我在控制檯收到此錯誤:

的XMLHttpRequest無法加載http://API-ENDPOINT-URL。對於 預檢響應具有無效的HTTP狀態代碼401

  • 看鉻控制檯的網絡請求我看到這個回來:
  • {」詳細信息「:」未提供身份驗證憑據。「}

    我在想什麼?我錯誤地發送身份驗證令牌嗎?

    +1

    您正在使用哪個Django身份驗證軟件包? –

    +0

    我看不出來。我無法訪問服務器,我只是試圖在Javascript中從客戶端與它進行交互。 – Simple

    +0

    你可以嘗試在ajax請求'xhrFields:{withCredentials:true}',' –

    回答

    0

    通過未啓用CORS的Javascript執行令牌認證是一項自殺任務。

    像我這樣做你自己的忙,只是通過服務器端做。