1

この OData 取得を変換する必要があります (SAPUI5 ライブラリを使用):

var url = "http://someurl/SERVICE";
var username = "username";
var password = "password";
var oModel = new sap.ui.model.odata.ODataModel(url, true, username, password);

SAPUI5 ライブラリを使用せずに ajax 呼び出しに変換し、認証を維持します。

$.ajax({
   url : "http://someurl/SERVICE?$format=json",
   type: "GET", //or POST?
   dataType: "json",
   data : {username : "username", password: "password"},
   success: function(){alert("ok")},
   error: function(){alert("error")}
})

私はたくさんグーグルで調べましたが、役に立つものは何も見つかりませんでした..認証を行う方法がわかりません。

出来ますか?何か案が?

4

1 に答える 1

2

「data:...」を設定する代わりに、次のように処理する必要があります。

$.ajax({
   url : "http://someurl/SERVICE?$format=json",
   type: "GET", //or POST?
   dataType: "jsonp",
   xhrFields: 
        {
            withCredentials: true
        },
   beforeSend: function (request)
        {
            request.setRequestHeader("Authorization", "Basic  dG9tY2F0OnRvbWNhdA==");
        },
   success: function(){alert("ok")},
   error: function(){alert("error")}
})

「dG9tY2F0OnRvbWNhdA==」は、base64 でエンコードされたユーザーとパスワードです。もちろん、これは基本認証でのみ機能します。

または別のオプションは、ユーザー/パスワードをURLに直接入れることです:

$.ajax({
   url : "http://user:password@someurl/SERVICE?$format=json",
   type: "GET", //or POST?
   dataType: "jsonp",
   success: function(){alert("ok")},
   error: function(){alert("error")}
})
于 2013-12-10T15:53:39.487 に答える