2013-08-01 69 views
0

因此,我試圖製作一個非常簡單的SharePoint應用程序。我只想將已經構建並託管的Web應用程序加載到SharePoint頁面標題中。Sharepoint 2013中的外部Ajax調用:訪問被拒絕

因此,目標是簡單地從備用頁面加載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和其他在線求助請求,但他們似乎都在處理更復雜的系統/情況。

任何幫助,將不勝感激。

回答

1

請考慮這篇文章: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。 希望這有助於。

+0

請問您能解釋一下mquery – Mihir

+0

@Mihir mQuery - 它是一個內置的SharePoint js庫。這就像jQuery,但有一些限制。有一個關於mQuery的博客:http://spdevlab.com/2013/07/01/getting-started-with-mquerym-in-sharepoint-2013-and-sharepoint-online/ –