我正在嘗試構建一個Delphi XE2 DataSnap Rest服務器,作爲第三方API訪問我們的DBMS。通過jQuery和AJAX傳遞DataSnap身份驗證憑證
我已經擴展了使用xe2中的其餘datasnap嚮導提供的身份驗證和授權提供的示例方法的功能。
我可以確認,我寫的所有服務器方法都會傳回直接通過瀏覽器訪問的數據。
問題來自於嘗試通過$ .ajax()調用向服務器進行身份驗證。
從瀏覽器地址欄訪問時,系統會提示您輸入用戶名和密碼,並且當您爲兩者輸入「dev」時,允許您繼續。
當將ajax()用戶名和密碼參數設置爲「dev」時,我得到一個HTTP 401響應。
我想我做正確,但這裏是代碼片段:
$("#contentdiv").click(function(){
$.ajax({
type:"GET",
cache:"false",
username:"dev",
password:"dev",
url:"http://192.168.0.2:8080/datasnap/rest/TServerMethods1/methodname/",
dataType:"jsonp",
statusCode: {
200: function(data){
alert('success ');
}
}
});
});
如果我關掉認證,我能順利拿到一個HTTP 200響應(雖然在JSON德爾福語法錯誤DataSnap正在返回,但這是一個不同時間的問題)。
另外,什麼是值得了解的 - 如果我手動登錄,然後運行ajax,它的工作原理 - 我假設這是因爲憑據緩存或一些這樣的。
這兩種技術相當新穎,所以要溫和。 如果我遺漏了一些可能導入的東西,請告訴我,我會在這裏解決它。