首页 文章

“没有为此应用程序's request url” when trying to use SharePoint 2013'的REST服务器和CSOM部署App Web

提问于
浏览
1

获取SharePoint列表数据我遇到了通过CSOM访问REST服务器的问题 . 我用CSOM和只使用jQuery尝试了这个 . 代码示例和下面的相关错误 . 任何人都可以指导我一个工作的例子或告诉我我做错了什么?

此代码是SharePoint托管应用程序的一部分,该列表只是根网站中的列表 . 用户有权访问列表和应用程序 .

CSOM Example: Yields: 失败! :App Web未针对此应用程序的请求部署http://mySharePointRootWebURL.local .

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); }
    });

我可以看到这个例子根本没有访问根网站(来自app / app web) .


jQuery Example Yields: 资源解释为脚本,但与MIME类型文本传送/纯: “http://mySharePointRootWebURL.local/_api/web/lists/getbytitle(\ 'MyLstName')/项目&... Query19104068602353800088_1379462071044&ALT = JSON-在脚本&_ = 1379462071045” . jquery.js:9597 Uncaught SyntaxError:意外的令牌<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服务器和返回数据而言,问题是根本没有添加 Headers (在Fiddler中验证) . 如果没有标头,数据将以XML格式返回 . 如果这就是它必须如何,我想,我想,但我更喜欢获得JSON .

1 回答

  • 1

    您的代码看起来不正确 . 这是与跨域库恶化的代码

    var executor = new SP.RequestExecutor(appweburl);
    
        executor.executeAsync(
        {
            url:
            appweburl +
            "/_api/SP.AppContextSite(@target)/web/lists/getByTitle('Contacts')/items" +
                            "?@target='" + hostweburl + "'" +
                            "&$select=Id,FirstName,Title,WorkPhone,Email" +
                            "&$orderby=Title,FirstName",
            method: "GET",
            headers: { "accept": "application/json;odata=verbose" },
            success: successHandler,
            error: errorHandler
        })
    

相关问题