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

进入 ajax 调用,不使用 SAPUI5 库,维护身份验证:

$.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

而不是设置“数据:...”,您需要以这种方式处理:

$.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 回答