【问题标题】:SharePoint 2013 hosted APP. Cross domain issueSharePoint 2013 托管的应用程序。跨域问题
【发布时间】:2013-07-30 17:30:50
【问题描述】:

我正在开发 SharePoint 托管应用程序。在此应用程序中,我想将数据(多个文件流作为多部分表单数据)“发布”到需要用户名和密码才能通过此 POST 请求传递的跨域第三方 Rest Service。我发现许多样本可以通过“GET”操作访问跨域 REST 服务,而无需用户名和密码。这些示例适用于 GET 操作,没有用户名和密码,但不支持我想发送用户名和密码以及多部分表单数据的情况。

我已经看到了提琴手会话,我虽然发送了授权标头值,它是用户名和密码组合的哈希值。但是这种努力无法成功地将用户名和密码传递给其余服务。我还需要找到一种方法将多部分表单数据发送到 REST 服务。

以下是msdn论坛上提出的问题, http://social.technet.microsoft.com/Forums/sharepoint/en-US/d4302523-82cc-4732-a89b-05eb0bbafadf/sharepoint-2013-hosted-app-cross-domain-issue

【问题讨论】:

    标签: sharepoint-2013


    【解决方案1】:

    我不知道您的问题是否已解决,但以下是共享点托管应用程序对共享点列表进行跨域调用的列表示例中的添加、删除和更新项目。

    function addItem() {
    var executor = new SP.RequestExecutor(appweburl);
    
    var dataTobeSent = {
        __metadata: { "type": "SP.Data.TestListforAppListItem" },
        Title: $("#col1").val(),
        testCol1: $("#col2").val(),
        test_x0020_col_x0020_2: $("#col3").val()
    };
    
    var sendData = JSON.stringify(dataTobeSent);
    
    executor.executeAsync(
        {
            url:
                appweburl +
                "/_api/SP.AppContextSite(@target)/web/lists/getByTitle('testListforApp')/items?@target='" +
                hostweburl + "'",
            contentType: "application/json;odata=verbose",
            method: "POST",
            body: sendData,
            headers: {
                "Accept": "application/json;odata=verbose",
                "content-type": "application/json;odata=verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").val()
            },
            success: getAllListItems,
            error: errorHandler
        }
    );
    }
    
    function deleteItem(id) {
    var executor = new SP.RequestExecutor(appweburl);
    executor.executeAsync(
        {
            url:
                appweburl +
                "/_api/SP.AppContextSite(@target)/web/lists/getByTitle('testListforApp')/items(" + id + ")?@target='" +
                hostweburl + "'",
            contentType: "application/json;odata=verbose",
            method: "POST",
            headers: {
                "Accept": "application/json;odata=verbose",
                "content-type": "application/json;odata=verbose",
                "X-Http-Method": "DELETE",
                "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                "If-Match": "*"
            },
            success: getAllListItems,
            error: errorHandler
        }
    );
    }
    
    function updateItem(id) {
    var executor = new SP.RequestExecutor(appweburl);
    
    var dataTobeSent = {
        __metadata: { "type": "SP.Data.TestListforAppListItem" },
        Title: $("#col1").val(),
        testCol1: $("#col2").val(),
        test_x0020_col_x0020_2: $("#col3").val()
    };
    
    var sendData = JSON.stringify(dataTobeSent);
    
    executor.executeAsync(
        {
            url:
                appweburl +
                "/_api/SP.AppContextSite(@target)/web/lists/getByTitle('testListforApp')/items(" + id + ")?@target='" +
                hostweburl + "'",
            contentType: "application/json;odata=verbose",
            method: "POST",
            body: sendData,
            headers: {
                "Accept": "application/json;odata=verbose",
                "content-type": "application/json;odata=verbose",
                "X-HTTP-Method": "MERGE",
                "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                "If-Match": "*"
            },
            success: getAllListItems,
            error: errorHandler
        }
    );
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多