Cors抛出我的错误“Access is Denied”

时间:2014-07-23 07:26:34

标签: c# jquery iis sharepoint cors

我构建了一个SharePoint应用程序,它使用Jquery调用IIS中托管的Web服务。

SharePoint Server特别是应用程序将在域

下的SharePoint中托管
https://qsspapp-3b9352b780820d.qsapps.com/teams/...

我的电话如下所示

private loadStates() {      
         $.support.cors = true; 
         $.ajax({
             type: "GET",
             cache: false,
             crossDomain:true,
             url: "http://myservice.de/api/controller/getavailablestates",
             success: (results) => {
                 console.log(results.Data);
                 this.availableStates.removeAll();
                 $.each(results.Data, (indexedDB, item: TableResultItem) => {

                     this.availableStates.push(new DataObjects.SelectionItem(item.rEQSTField, item.rEQST_DSCRField));
                 });

             },
             error: (jqXHR: any, textStatus: any, errorThrown: any) => {

                 console.log("loadStates Error: " + errorThrown);
             },

         });

     }

我的服务Web.config包含以下cors设置:

<system.webServer>
  <httpProtocol>

    <customHeaders>

      <add name="Access-Control-Allow-Origin" value="*" />
    </customHeaders>
  </httpProtocol>...

当我调用此方法时,它会让我误认为“Acces is Denied”。

我错了什么?

2 个答案:

答案 0 :(得分:0)

webconfig

中使用以下内容
<system.web>
  <authentication mode="None" />
  <authorization>
    <allow users="?" />
  </authorization>
</system.web>

希望这会有所帮助......

答案 1 :(得分:0)

最后我得到了解决方案。

问题

我在HTTPS系统(SharePoint)上工作,并调用HTTP系统(服务调度程序)。 这适用于大多数浏览器,但不适用于IE ....(坏事......)

解决方案:

我必须为Service Dispatcher创建一个HTTP Binding,并将Dispatcher Url添加为thrusted site。

之后就可以了。

谢谢你的帮助! :)