2013-12-10 45 views
1

我需要這個OData的檢索轉換(使用SAPUI5庫):檢索的OData使用AJAX JSON格式,以驗證

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庫,mantaining認證:

$.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")} 
}) 

我GOOGLE了很多,但我沒有找到有用的東西..我不知道我該怎麼做認證。

是否有可能?任何想法?

回答

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編碼的用戶名和密碼。 當然,這隻適用於基本身份驗證。

或者另一種選擇是把用戶名/密碼,直接在網址:

$.ajax({ 
    url : "http://user:[email protected]/SERVICE?$format=json", 
    type: "GET", //or POST? 
    dataType: "jsonp", 
    success: function(){alert("ok")}, 
    error: function(){alert("error")} 
}) 
+2

應注意的是,由於在傳輸層(HTTP)是不加密的,你發送明文用戶名和密碼通過網絡 – dparnas