2013-08-01 1 views
0

Итак, я пытаюсь создать чрезвычайно простое приложение sharepoint. Я просто хочу, чтобы уже построенное и размещенное веб-приложение загружалось в заголовок страницы sharepoint.Внешний вызов Ajax в Sharepoint 2013: доступ запрещен

Целью этого было просто загрузить в Html с альтернативной страницы и поместить его в div в приложении Default.aspx приложения Sharepoint. Точно так же мы вытащили другой внешний проект в веб-приложение без sharepoint без каких-либо трудностей.

Итак, я сделал следующий АЯКС вызова:

$.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. Есть мой пример запроса службы REST SharePoint 2013 из самого SharePoint. Я использую Script on Demand library и mQuery (встроенный аналог Java 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 - это встроенная библиотека js SharePoint. Это похоже на jQuery, но с некоторыми ограничениями. Существует большой блог о mQuery: http://spdevlab.com/2013/07/01/getting-started-with-mquerym-in-sharepoint-2013-and-sharepoint-online/ –

Смежные вопросы