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...
ReplyDeleteFull Stack Developer Course In Mumbai
Full stack Developer Course in Ahmedabad
Full Stack Developer Course in Kochi
Full stack Developer Course in Trivandrum
Full Stack Developer Course In Kolkata
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 interactive and informative.keep updating more information...
ReplyDeleteDot Net Training In Mumbai
Dot Net Training In Ahmedabad
Net Coaching Centre In Kochi
Net Coaching Centre In Kochi
Net Coaching In Kolkata
Know About .Net & Its Scope
ReplyDeleteWonderful post and more informative!keep sharing Like this!
Full stack developer course in bangalore
Full stack developer course in pune
This post is so useful and informative. Keep updating with more information.....
ReplyDeleteCCNA Course In Bangalore
CCNA Training In Bangalore
Very informative blog! I am glad that I came across your article. I'm learning a lot from here. Keep us updated by sharing more such blogs.
ReplyDeleteAWS Course in Chennai
AWS Online Course
AWS Course in Coimbatore
This post is so useful and informative. Keep updating with more information.....
ReplyDeleteEthical Hacking course in Bangalore
Hacking course in Bangalore
Nice Post!!! thanks for sharing this post with us
ReplyDeleteHow To Run Google Ads?
How Google Ads Work?
Thanks for sharing the informative data. Keep sharing…
ReplyDeleteSwift Developer Course Certification
Learn Swift Online
Swift Training in Bangalore