我正在尝试在angularJS中使用SAP Odata服务,但我没有得到如何添加该Odata服务的凭据。
这是我的代码:
$http.post("url" , {
username: "*****",
password: "*****"
}, {
withCredentials: true
}).then(function (response){
alert(response);
});
我收到了401 Un Unizationization Error。
答案 0 :(得分:0)
如果您想与SAP Gateway(OData服务)进行通信,最简单的方法是使用基本身份验证。它默认启用。
为了使用基本身份验证从Angular进行服务调用,您需要首先对凭据进行编码:
var encoded = Base64.encode(username + ':' + password);
对凭据进行编码后,您需要在请求中添加授权标头:
$http.defaults.headers.common.Authorization = 'Basic ' + encoded;
设置标题后,您可以按常规开始发送请求,例如:
$http.get('http://sap.machine.net/service/odata.svc/contacts')
.success(function(data) {
alert(data);
});
或者,您可以在每次通话中传递身份验证详细信息,例如:
$http.get('http://sap.machine.net/service/odata.svc/contacts', {.
headers: { 'Authorization': 'Basic ' + encoded }
}).success(function(data) {
alert(data);
});
答案 1 :(得分:0)
return this.http.get<Response>(this.baseURL + apiURL, { withCredentials: true })
.pipe(
retry(1),
catchError(this.handleError)
);