如何用odatajs读取OData v4端点?

时间:2014-11-06 18:59:37

标签: odata datajs olingo

我尝试使用Olingo OData Client for JavaScript(odatajs)阅读简单的OData v4端点。

Olingo odatajs网页上写道:

  

您还可以使用文档和datajs库中的示例,因为这些功能和API类似。

所以我尝试用这段代码读取OData端点:

odatajs.read(uri, function (data) {
    alert(JSON.stringify(data));
  }, function (err) {
    alert(JSON.stringify(err));
});

但是代码给出了这个错误:

Uncaught TypeError: undefined is not a function

使用jquery / ajax它总是调用错误函数,但你可以看到fiddler的响应。

1 个答案:

答案 0 :(得分:1)

这是来自odatajs git存储库的测试用例,希望它有用:

var headers = { "Content-Type": "application/json", Accept: "application/json" };
var request = {
    requestUri: "http://<wwww bla bla .com>/endpoints/FoodStoreDataServiceV4.svc/Foods",
    method: "GET",
    headers: headers,
    data: null
};


odatajs.oData.request(request, function (data, response) {
    if ((response.statusCode == '200') &&
        (response.body.indexOf('}', response.body.length - 1) == response.body.length - 1) &&
        response.headers['Content-Type'] == "application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8") {
        document.getElementById('msg').innerHTML += ("<div>odatajs V4 testing pass!</div>");
    } else {
        document.getElementById('msg').innerHTML += ("<div>odatajs V4 testing failed.</div>");
    }
}, function (err) {
    document.getElementById('msg').innerHTML += ("<div>odatajs V4 testing failed.</div>");
});