1

所以,我正在尝试制作一个非常简单的共享点应用程序。我只想在共享点页面标题中加载一个已经构建和托管的 Web 应用程序。

因此,目标是简单地从备用页面加载 Html 并将其放置在 Sharepoint 应用程序的 Default.aspx 上的 div 中。这与我们将另一个外部项目拉入非共享点 Web 应用程序的方式相同,绝对没有任何困难。

因此,我进行了以下 ajax 调用:

$.ajax(
        {
            type: "GET",
            url: "http://PageIWantToLoad/default.aspx",
            dataType: "html",
            success: function (result) {
                $("#pageContainer").html(result);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert("oops");
            }

    });

但是,我收到拒绝访问错误。

我检查了一些类似的 StackOverflow 和其他在线帮助请求,但它们似乎都在处理更复杂的系统/情况。

任何帮助,将不胜感激。

4

1 回答 1

2

考虑这篇文章:http: //msdn.microsoft.com/en-us/library/jj164022.aspx。如果您想从 SharePoint 发出 javascript 请求,您需要使用 Sharepoint 跨域库。这是我从 SharePoint 本身请求 SharePoint 2013 REST 服务的示例。我使用了 Script on Demand 库和 mQuery(SharePoint 内置的 jQuery 模拟)。和 SP.RequestExecutor - 这是跨域 SharePoint 库。

SP.SOD.executeFunc('mQuery.js', 'm$', function() {
m$.ready(function() { 
    SP.SOD.registerSod('sp.requestexecutor.js',
        '/_layouts/15/sp.requestexecutor.js');
    SP.SOD.executeFunc('sp.requestexecutor.js', 
        'SP.RequestExecutor', 
    function() {
        var targetSiteUrl = "http://mySiteUrl";
    var targetUrl = "http://mySiteUrl/_api/web/lists/getByTitle('myListTitle')/items(1)";
var re = new SP.RequestExecutor(targetSiteUrl);
re.executeAsync({
    url: targetUrl,
    headers: { "Accept": "application/json; odata=verbose" },
    method: 'GET',
    success:function(response) {
        var jsonObject = JSON.parse(response.body);
            }
        });
    });
})});

关键是RequestExecutor。如果您想从外部资源向 SharePoint 请求 - 您将需要 accessToken。希望这可以帮助。

于 2013-08-02T07:14:25.303 回答