Ajax请求返回2个错误; “访问被拒绝” +“跨源资源共享(CORS)”

时间:2019-03-10 00:58:29

标签: javascript jquery sharepoint cors xmlhttprequest

我的问题是关于共享点的,但这是一个纯JavaScript开发问题。现在在我们的组织内部,我们有以下内容:-

1-本地共享点。在http下运行。

2-在线共享点。在https下运行。

3个用户使用与Office 365与本地活动目录同步相同的用户名/密码登录2个服务器场。但是,如果我在本地登录到我们的共享点,并且尝试在线访问共享点,那么我将必须登录到Office 365。

4-现在,我正在尝试显示共享点本地页面中共享点在线列表中的项目。

5-因此,在共享点本地页面中,我添加了此脚本,该脚本将调用SP-online列表API,并显示最新的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-现在,如果我在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本地页面调用我的SP在线列表api吗?

0 个答案:

没有答案