2013-08-01 4 views
0

그래서 매우 간단한 셰어 포인트 응용 프로그램을 만들려고합니다. 난 단지 이미 빌드 및 호스팅 된 웹 응용 프로그램을 SharePoint 페이지 헤더 내에로드해야합니다.Sharepoint 2013의 외부 Ajax 호출 : 액세스가 거부되었습니다.

따라서 목표는 단순히 대체 페이지에서 HTML로로드하여 Sharepoint 응용 프로그램의 Default.aspx에서 div에 배치하는 것이 었습니다. 이는 다른 외부 프로젝트에서 전혀 문제가없는 비 - 셰어 포인트 웹 애플리케이션으로 끌어온 것과 같은 방식입니다.

$.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 Service를 요청하는 예제가 있습니다. 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/ –