0

我有一个小问题,我似乎无法弄清楚。我正在尝试制作一个简单的 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"
                }
      },
4

1 回答 1

0

如果您使用的是提供商托管的应用程序,您应该尝试使用 SP 跨域库。我认为您最好的选择是使用库检索数据,然后将结果信息绑定到网格。

http://blogs.msdn.com/b/officeapps/archive/2012/11/29/solving-cross-domain-problems-in-apps-for-sharepoint.aspx

于 2013-12-13T18:37:29.253 回答