SharePoint 2013 Use the cross-domain library in a tenant-scoped app (REST)
--------------------------------------------------------------------
--------------------------------------------------------------------
Thank You.
Step1: vs2012 -> file -> new -> project.
Step2: templates -> visual c# -> office/sharepoint -> app
-> app for sharepoint -> name (CrossDomainTenantScopeREST)
Step3: CrossDomainTenantScopeREST -> Scripts -> right click ->
add -> new item -> Visual C# items -> web -> javascript file ->
Name (CrossDomainExec.js)
Open CrossDomainExec.js file and add below script
var hostweburl;
var appweburl;
$(document).ready(function () {
hostweburl =
decodeURIComponent(getQueryStringParameter("SPHostUrl"));
appweburl =
decodeURIComponent(getQueryStringParameter("SPAppWebUrl"));
var scriptbase = hostweburl + "/_layouts/15/";
$.getScript("/_layouts/15/SP.RequestExecutor.js");
});
function execCrossDomainRequest() {
var executor;
executor = new SP.RequestExecutor(appweburl);
executor.executeAsync(
{
url: appweburl + "/_api/SP.AppContextSite(@target)/web?@target='" + document.getElementById("sitecoll1").value + "'",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: successHandler,
error: errorHandler
}
);
}
function successHandler(data) {
document.getElementById("WebTitles").innerHTML
= "";
var jsonObject = JSON.parse(data.body);
var oli = document.createElement("li");
oli.innerText = jsonObject.d.Title + " (" +
jsonObject.d.Url + ")";
document.getElementById("WebTitles").appendChild(oli);
}
function errorHandler(data, errorCode, errorMessage) {
var oli = document.createElement("li");
oli.innerText = "Could not complete cross-domain call: " + errorMessage;
document.getElementById("WebTitles").appendChild(oli);
}
function getQueryStringParameter(paramToRetrieve) {
var params = document.URL.split("?")[1].split("&");
var strParams = "";
for (var i = 0; i < params.length; i = i + 1) {
var singleParam = params[i].split("=");
if (singleParam[0] == paramToRetrieve)
return singleParam[1];
}
}
Step4:
CrossDomainTenantScopeREST -> pages -> default.aspx
--------------------------------------------------------------------
<%@ Page Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,
Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" MasterPageFile="~masterurl/default.master" Language="C#" %>
<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0,
Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0,
Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0,
Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<asp:Content ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
<script type="text/javascript" src="../Scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.js"></script>
<meta name="WebPartPageExpansion" content="full" />
<link rel="Stylesheet" type="text/css" href="../Content/App.css" />
<script type="text/javascript" src="../Scripts/App.js"></script>
<script type="text/javascript" src="../Scripts/CrossDomainExec.js"></script>
</asp:Content>
<asp:Content ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server">
Page Title
</asp:Content>
<asp:Content ContentPlaceHolderID="PlaceHolderMain" runat="server">
<div>
<p id="message">
initializing...
</p>
</div>
<br />
<p>
Site collection 1: <input id="sitecoll1" type="text" style="width: 400px;" />
<br />
<input value="Go" type="button" onclick="execCrossDomainRequest();" />
</p>
Web titles:<br />
<ul id="WebTitles"></ul>
</asp:Content>
--------------------------------------------------------------------
Step5: deploy (F5)
App gives below error message. because app don't have permission to read site collection data.
Step6: To privide permission to app, go to CrossDomainTenantScopeREST -> AppManifest.xml (double click) ->
permissions ->
Scope: Tenant
Thank You.
This post is so interactive and informative.keep updating more information...
ReplyDeleteAws Training In Mumbai
Aws Training In Ahmedabad
Aws Training In Kochi
Aws Training In Trivandrum
Aws Training In Kolkata
AWS Solution Architect
AWS
This post is so useful and informative. Keep updating with more information.....
ReplyDeleteCCNA Course In Bangalore
CCNA Training In Bangalore
Nice blog.
ReplyDeleteFull stack classes in Pune
Thank you for sharing a great information with us.
ReplyDeleteFull Stack Web Development Course In Kolkata
Great blog.It was very inetersting.
ReplyDeleteDevOps course in Pune
thanks for sharing important information. Mern Stack Classes in Pune
ReplyDelete