获取 SharePoint 列表数据我在通过 CSOM 访问 REST 服务器时遇到问题。我已经用 CSOM 和 jQuery 尝试过这个。下面的代码示例和相关错误。谁能指导我看一个工作示例或告诉我我做错了什么?
此代码是 SharePoint 托管应用程序的一部分,并且该列表只是根 Web 中的一个列表。用户有权访问列表和应用程序。
CSOM 示例: 收益率: 失败!: 没有为此应用的请求 url http://mySharePointRootWebURL.local部署应用 Web 。
var data = new SP.RequestExecutor("http://mySharePointRootWebURL.local/");
data.executeAsync({
method: "GET",
headers: { "Accept": "application/json;odata=verbose" },
url: "http://mySharePointRootWebURL.local/_api/web/lists/getbytitle(\'MyLstName\')/items",
success: function (data) { console.log('success!'); },
error: function (p1,p2,errorMessage) { console.log('Fail! :' + errorMessage); }
});
我可以看到这个示例根本没有访问根网络(来自应用程序/应用程序网络)。
jQuery 示例 产量: 资源解释为脚本,但使用 MIME 类型 text/plain 传输:“ http://mySharePointRootWebURL.local/_api/web/lists/getbytitle (\'MyLstName\')/items&…Query19104068602353800088_1379462071044&alt=json-in-script&_ = 1379462071045”。jquery.js:9597 Uncaught SyntaxError: Unexpected token < items:1 失败!: 错误:没有调用 jQuery19104068602353800088_1379462071044
$.ajax({
url: "http://mySharePointRootWebURL.local/_api/web/lists/getbytitle(\'MyListName\')/items",
type: "GET",
beforeSend: function(xhr){
xhr.setRequestHeader('Accept', 'application/json;odata=verbose'); },
headers: {"Accept":"application/json;odata=verbose"},
success: function(data){ console.log("success"); },
error: function errHandler(p1,p2,errMessage){ console.log("fail! : " + errMessage); },
dataType: 'jsonp',
crossDomain: true,
data: {
alt: 'json-in-script'
},
});
就访问 REST 服务器和返回数据而言,这是有效的,问题是根本没有添加标头(在 Fiddler 中验证)。如果没有标头,数据将以 XML 形式返回。如果必须这样的话,我想我会使用它,但我更喜欢获取 JSON。