私はちょっと理解できないような小さな問題を抱えています。親サイトのリストからいくつかのフィールドを取得し、剣道グリッドにバインドする単純な SharePoint 2013 デモ アプリを作成しようとしています。
SP2013 の新しい性質により、アプリは独自のローカル サイトで作成され、これらの呼び出しがクロス ドメインになります。電話をかけると、データが引き戻されません。動作中の呼び出しとアプリによって行われた呼び出しを比較すると、失敗した呼び出しに Cookie が存在しないことがわかります (これが、データが引き戻されていない理由です)。試してみるべきことに関するヒントや提案を誰かが提供できれば、私はそれを感謝します.
私が呼び出そうとしているリストは KendoGridList と呼ばれ、名前と姓を引き戻してグリッドにバインドしようとしています。以下は私のコードです:
編集: コードをもう少し詳しく調べたところ、サービスへの呼び出しで Cookie が渡されていないようです。通常の残りの呼び出しからサービスへのクッキーを取得し、それをフィドラーのコンポーザーに追加すると、呼び出しが通過してデータが返されます。
$(document).ready(function () {
$("#grid").empty();
var siteUrl = "site url placed here";
var url = siteUrl + "/_vti_bin/Listdata.svc/KendoGridList/?$select=FirstName,LastName";
grid = $("#grid").kendoGrid({
dataSource: {
type: "odata",
transport: {
read: {
url: url,
dataType: "json",
beforeSend: function (xhr) {
xhr.setRequestHeader("Accept", "application/json;odata=verbose");
}
}
},
schema: {
type: "json",
model: {
fields: {
FirstName: "FirstName",
LastName: "LastName"
}
}
},
pageSize: 10,
serverPaging: true,
serverFiltering: true,
serverSorting: true,
change: function (e) { // data load completed for grid
},
},
filterable: false,
sortable: true,
pageable: true,
scrollable: false,
//groupable: true,
columns: [{
field: "FirstName",
title: "First Name",
width: 50
}, {
field: "LastName",
title: "Last Name",
width: 50
}
]
});
});
私も使ってみました:
read: {
url: url,
type: "GET",
dataType: "json",
contentType: "application/json;odata=verbose",
headers: {
"accept": "application/json;odata=verbose"
}
},