HTML5、CSS、JavaScript などの Web テクノロジに基づいて OData クライアントを開発しています。
私がやりたいことは、最新バージョン (V3) である OData フィードを簡単な方法でキャッシュすることです。
HTML5 のローカル ストレージまたはセッション ストレージを使用して、この機能を実装できました。
ただし、キャッシュ ライブラリがあれば、より効率的です。
data.js は知っていますが、「no handler for data」というエラー メッセージで機能しません。
OData.defaultHttpClient.enableJsonpCallback = true;
OData.read("http://localhost/OData/OData.svc/GetDatasets", function (data) {
console.log(data);
},
function (err) {
console.log(err);
});
エラーメッセージでググったので、このようにコードを修正しました。
var textHtmlHandler = {
read: function (response, context) {
var contentType = response.headers["Content-Type"];
if (contentType && contentType.indexOf("text/html") === 0) {
response.data = response.body;
} else {
odata.defaultHandler.read(response, context);
}
},
write: function (request, context) { }
}
OData.defaultHttpClient.enableJsonpCallback = true;
OData.read("http://localhost/OData/OData.svc/", function (data) {
console.log(data);
},
function (err) {
console.log(err);
},
textHtmlHandler);
「ReferenceError」と表示されるようになりました
CORSをサポートしているため、JSONPを使用する必要がないため、data.jsコードを疑っています。
$.ajax({
url: "http://cross-domain-address/OData/OData.svc?$format=json",
type: "GET",
crossDomain: true,
dataType: "json",
success: a,
error: b
});
function a(d) {
console.log(d);
}
function b(d) {
console.log(d);
}
あなたはなにか考えはありますか?
OData フィードのキャッシュ ライブラリを提案するか、コードを修正できます。