JSOM / REST API,查询个人站点 - 来自服务器的意外响应数据

时间:2015-07-13 08:54:07

标签: office365 office365-apps

我正在尝试从租户上的任何网站集对用户的个人网站进行简单查询,但是,我收到错误:来自服务器的意外响应数据。

我已经尝试使用REST和JSOM来打开上下文,但是这两种情况我都收到了这个错误。

当针对另一个上下文/另一个网站集执行代码时,我能够对其执行查询。

个人用户网站有什么特别之处?

一些示例代码:

// I've tried context to be either current site collection 
// _spPageContextInfo.webAbsoluteUrl or personal site's URL
$.getScript(SharePoint.Helpers.combineUrls(context, "_layouts/15/SP.RequestExecutor.js"), function () {
            var executor = new SP.RequestExecutor(context);
            executor.executeAsync({
                url: targetUrl, // https://tenant-my.sharepoint.com/personal/user_domain_com/_api/web/lists
                method: "GET",
                headers: {
                    "accept": "application/json;odata=verbose",
                },
                success: typeof (onSuccessFunc) === "function" ? onSuccessFunc : function (data) {
                    window.console && console.log(JSON.parse(data.body));
                },
                error: typeof (onErrorFunc) === "function" ? onErrorFunc : function (err) {
                    alert(JSON.stringify(err));
                }
            });
        });

//JSOM
var clientCtx = new SP.ClientContext(personalSiteUrl);
var web = clientCtx.get_web();
clientCtx.load(web);
clientCtx.executeQueryAsync(function () { alert ("web site url:" + web.get_url()) }, function () { console.log("FAIL")});

1 个答案:

答案 0 :(得分:0)

您似乎在查询其他域,并且出于安全原因阻止了跨域JavaScript调用。在获取SP.RequestExecutor.js以使用JavaScript跨域库执行查询时,需要将execCrossDomainRequest作为参数传递,如MSDN所述:

https://msdn.microsoft.com/en-us/library/office/fp179927.aspx?f=255&MSPPError=-2147217396