如何在Angular JS中使用安全的OData服务

时间:2016-06-02 19:40:51

标签: angularjs ionic-framework odata

我正在尝试在angularJS中使用SAP Odata服务,但我没有得到如何添加该Odata服务的凭据。

这是我的代码:

$http.post("url" , {
    username: "*****",
    password: "*****"
}, {
    withCredentials: true
}).then(function (response){
alert(response);

});

我收到了401 Un Unizationization Error。

2 个答案:

答案 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)
);