Ajax-запрос возвращает 2 ошибки;«Доступ запрещен» + «Обмен ресурсами между источниками (CORS)» - PullRequest
0 голосов
/ 10 марта 2019

мой вопрос касается sharepoint, но это проблема разработки чистого javascript.Теперь внутри нашей организации мы имеем следующее: -

1- локальная точка обмена.которые работают под http.

2 - sharepoint online.которые запускаются по адресу https.

3 - пользователи входят в 2 фермы, используя то же имя пользователя / пароль, что и Office 365, синхронизируемый с локальным активным каталогом.но если я захожу на наш sharepoint локально и пытаюсь получить доступ к sharepoint онлайн, то мне придется войти в офис 365.

4 - теперь я пытаюсь показать элементы из онлайн-списка sharepointвнутри локальной страницы sharepoint.

5- поэтому на локальной странице sharepoint я добавил этот скрипт, который будет вызывать API списка SP-online list и отображать последние 3 элемента, как показано ниже: -

<script src="/Resources/jquery-1.11.3.js"></script>
<div id="inserhere"></div>
<script>
$(function () { 
var htmlinit = "";
htmlinit = "<image  id= 'customloader22' src= '/resources/ajax-loader.gif'></image>";
$("#inserhere").after(htmlinit);
var html="<div class='ms-comm-adminLinks ms-core-defaultFont ms-noList' unselectable='on'><div class='ms-webpart-titleText' unselectable='on'><a style='color:black' href='/Lists/News  Announcements/AllItems.aspx' target='_blank'> News & Announcements </a> </div><ul class='ms-comm-adminLinksList' unselectable='on'>";

    $.ajax({
         url: "https://*****.sharepoint.com/_api/web/lists/getbytitle('News & Announcements')/items?$filter=ContentType eq 'Discussion'&$select=Title&$orderby=Created desc",
         method: "GET",   
         headers: { "Accept": "application/json; odata=verbose" },
         success: function (data) {
            if(data.d.results.length>0){

                var items=data.d.results;
                for(var i=0;i<items.length;i++){
    if(i <= 2 )     
    {

                        //var nurl = items[i].LinkLocation.Url.toString();
                        var ntitle = "/Lists/News  Announcements/Flat.aspx?RootFolder=/Lists/News  Announcements/" + items[i].Title.toString();
                        var ntitle2 = items[i].Title.toString();;
                        alert(ntitle)
    html+="<ul unselectable='on'><li class='ms-comm-adminLinksListItem' unselectable='on'><a href=" + '"'+ ntitle +'"'+ "target='_blank' unselectable='on'>"+ ntitle2 + "</a></li></ul>";
          }
          }
                html+="</ul></div>";
                $("#inserhere").after(html);
                 $("#customloader22").hide();
            }
         },
         error: function (data) {

         $("#customloader22").hide();
         }
        });




    });
    </script>

6 - теперь, если я войду в локальный ресурс sharepoint и онлайн-ресурс sharepoint, на 2 разных вкладках и получу доступ к локальной странице SP, содержащей вышеуказанный скрипт, тогда я получуэта ошибка (которую я получаю из Firefox F12):

Access denied. You do not have permission to perform this action or access this resource.

также внутри консоли IE-11, я обнаружил это предупреждение: -

SEC7118: XMLHttpRequest for https://***.sharepoint.com/_api/web/lists/getbytitle('News%20&%20Announcements')/items?$filter=ContentType eq 'Discussion'&$select=Title&$orderby=Created desc required Cross Origin Resource Sharing (CORS).

, так что любой может посоветовать, если естьспособ вызвать мой список SP-online api с нашей локальной страницы SP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...