使用 SyncFusion 的基本身份验证 ej.DataManager
Using basic authentication with SyncFusion ej.DataManager
我正在努力设置 SyncFusions ej.Grid 在使用我的 API 获取或更新数据时使用基本身份验证。有没有人有这方面的经验?他们的 examples 似乎稀少。
下面是我尝试过的一些示例。给定以下设置代码:
var ticket = "Basic " + Base64.encode("username:password");
$('#Grid').ejGrid({
dataSource: dataManager,
allowPaging: true,
columns: ["AccountName", "CompanyName"]
});
此代码会显示 chrome 基本身份验证提示:
var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor()
});
此代码会显示 chrome 基本身份验证提示。
已尝试,因为在 data.min.js
中使用了一个 "headers" 对象
var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor(),
headers: {
Authorization: ticket
}
});
此代码错误:未捕获类型错误:this.adaptor.processQuery 不是函数
已尝试 https://www.syncfusion.com/forums/117024/does-datamanager-support-odata-v4
var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor().extend({
beforeSend: function() {
request.setRequestHeader("Authorization", ticket);
}
})
});
此代码会显示 chrome 基本身份验证提示:
var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor(),
beforeSend: function() {
request.setRequestHeader("Authorization", ticket);
}
});
此代码会显示 chrome 基本身份验证提示:
var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor()
});
dataManager.dataSource.beforeSend = function() {
request.setRequestHeader("Authorization", ticket);
}
经过多次调试缩小代码后,我发现 ej.DataManager
构造函数确实接受 headers
属性,但需要 objects 的列表并使用每个每个 objects 作为 HTTP header 的属性。所以下面的代码将包含您要查找的header:
var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor(),
headers: [{
Authorization: ticket
}]
});
我正在努力设置 SyncFusions ej.Grid 在使用我的 API 获取或更新数据时使用基本身份验证。有没有人有这方面的经验?他们的 examples 似乎稀少。
下面是我尝试过的一些示例。给定以下设置代码:
var ticket = "Basic " + Base64.encode("username:password");
$('#Grid').ejGrid({
dataSource: dataManager,
allowPaging: true,
columns: ["AccountName", "CompanyName"]
});
此代码会显示 chrome 基本身份验证提示:
var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor()
});
此代码会显示 chrome 基本身份验证提示。
已尝试,因为在 data.min.js
中使用了一个 "headers" 对象var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor(),
headers: {
Authorization: ticket
}
});
此代码错误:未捕获类型错误:this.adaptor.processQuery 不是函数
已尝试 https://www.syncfusion.com/forums/117024/does-datamanager-support-odata-v4
var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor().extend({
beforeSend: function() {
request.setRequestHeader("Authorization", ticket);
}
})
});
此代码会显示 chrome 基本身份验证提示:
var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor(),
beforeSend: function() {
request.setRequestHeader("Authorization", ticket);
}
});
此代码会显示 chrome 基本身份验证提示:
var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor()
});
dataManager.dataSource.beforeSend = function() {
request.setRequestHeader("Authorization", ticket);
}
经过多次调试缩小代码后,我发现 ej.DataManager
构造函数确实接受 headers
属性,但需要 objects 的列表并使用每个每个 objects 作为 HTTP header 的属性。所以下面的代码将包含您要查找的header:
var dataManager = ej.DataManager({
url: "/api/app/imports/3",
adaptor: new ej.WebApiAdaptor(),
headers: [{
Authorization: ticket
}]
});