我能够使用 ASP.NET 使用服务(根本不是问题)。现在我想创建一个纯 HTML 页面并使用“OData Javascript 库”(datajs)访问该服务。
如果我禁用身份验证和数据请求,它工作正常。我找不到有关如何使用“datajs”(与 OData.Request 和/或 OData.Read 一起使用时)发送身份验证标头信息的任何示例代码。
谁可以帮我这个事?
我能够使用 ASP.NET 使用服务(根本不是问题)。现在我想创建一个纯 HTML 页面并使用“OData Javascript 库”(datajs)访问该服务。
如果我禁用身份验证和数据请求,它工作正常。我找不到有关如何使用“datajs”(与 OData.Request 和/或 OData.Read 一起使用时)发送身份验证标头信息的任何示例代码。
谁可以帮我这个事?
如果您使用帖子中描述的基本身份验证,则可以使用 OData.request 的请求参数来传递用户名和密码。
http://datajs.codeplex.com/wikipage?title=datajs%20OData%20API#OData.request
你可以这样写:
OData.request({requestUri:"...", user:"user", password:"secret"}, function (data) { ... });
请注意,这不适用于跨域 AJAX。
希望这可以帮助!
如果您使用 datajs 库进行服务集成,那么您可以使用上述方法来进行 odata 服务,也可以使用以下方法,如示例所示。在这里,我在变量“oHeader”中设置了标头,并使用对凭据进行编码的“btoa”函数传递它。
var oHeaders = {};
var uName="abc";
var pass="123";
var requrl="{service path}";
oHeaders['Authorization'] = "Basic " + btoa(uName +':'+ pass);
var request = {
headers: oHeaders,
requestUri: requrl,
method: "GET",
};
OData.request(request, function(data) {
// success block
}, function(data) {
// error block
});