嘗試使用簡單的javascript客戶端測試新的datasnap服務器。它的工作,直到我打開服務器上的授權,然後我不斷收到401錯誤,onAuthorization事件沒有傳入任何用戶名或密碼,他們總是空白。使用javascript客戶端進行Delphi Datasnap測試
$(document).ready(function(e) {
var jsonStr = {
"ContactName": "smith, anthony",
"FirstName": "anthony",
"LastName": "smith"
};
function make_base_auth(user, password) {
var tok = user + ':' + password;
var hash = btoa(tok);
return "Basic " + hash;
}
var userName = "admin";
var password = "admin";
var authStr = convertStringToBase64(userName + ":" + password);
var authObj = '{"authentication":authStr}';
$.ajax({
url: "http://127.0.0.1:8086/api/services/Customers/RegisterCustomer",
headers: {
"Authorization": make_base_auth(userName, password)
},
beforeSend: function(xhr) {
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Accept", "application/json");
//xhr.setRequestHeader ("Authorization", make_base_auth (userName, password));
},
crossDomain: true,
type: "POST",
dataType: "json",
data: JSON.stringify(jsonStr),
success: function(result, status, jqXHR) {
$("preerror").text("IT WORKED");
var jsonStr = result;
var jsonObj = JSON.parse(jsonStr);
var jsonPretty = JSON.stringify(jsonObj, null, '\t');
$("pre").text(jsonPretty);
},
error(jqXHR, textStatus, errorThrown) {
$("pre").text("FAIL");
}
});
});
嘗試標準的方法:使URL'HTTP://用戶名:密碼@服務器/路徑' –