我有一个小问题,我似乎无法弄清楚。我正在尝试制作一个简单的 SharePoint 2013 演示应用程序,该应用程序从父站点上的列表中获取一些字段并绑定到剑道网格。
由于 SP2013 的新特性,应用程序在他们自己的本地站点中创建,这使得这些调用跨域。当我拨打电话时,没有数据被拉回。当我将工作调用与应用程序进行的调用进行比较时,我可以看到失败的调用中不存在 cookie(这就是没有数据被拉回的原因)。如果有人可以就尝试的事情提供任何提示或建议,我将不胜感激。
我试图调用的列表称为 KendoGridList,我试图拉回名字和姓氏并绑定到网格。下面是我的代码:
编辑:在深入研究代码后,看起来 cookie 没有在对服务的调用中传递。如果我从正常的休息调用中获取 cookie 到有效的服务并将其添加到 fiddler 中的作曲家,则调用通过并返回数据。
$(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"
}
},