Cors 向我抛出错误“访问被拒绝”

Posted

技术标签:

【中文标题】Cors 向我抛出错误“访问被拒绝”【英文标题】:Cors throws me error "Acces is Denied" 【发布时间】:2014-09-14 06:29:09 【问题描述】:

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

该应用程序将托管在 SharePoint 域下的 SharePoint Server 专用

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);
             ,

         );

     

My Service Web.config 包含以下 cors 设置:

<system.webServer>
  <httpProtocol>

    <customHeaders>

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

当我调用此方法时,它显示错误“访问被拒绝”。

我做错了什么?

【问题讨论】:

我希望您需要在 ajax 请求中提及用户名凭据 是的,但我目前没有身份验证例程。所以这不可能是问题。该服务也被授予匿名访问权限。 没有你的错误清楚地提到问题出在身份验证上,所以你得到“访问被拒绝”的原因。我希望您需要再次检查服务器 @AntoKing“访问被拒绝”在这种情况下很可能与身份验证无关。我猜您的服务器上不支持“OPTIONS”动词,因此不支持 CORS。使用 Fiddler 查看实际发出了哪些请求以及实际发送了哪些标头。 【参考方案1】:

webconfig中使用下面

<system.web>
  <authentication mode="None" />
  <authorization>
    <allow users="?" />
  </authorization>
</system.web>

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

【讨论】:

【参考方案2】:

我终于找到了可行的解决方案。

问题

我使用 HTTPS 系统 (SharePoint) 并调用 HTTP 系统 (Service Dispatcher)。 这适用于大多数浏览器,但不适用于 IE....(坏事..)

解决办法:

我必须为 Service Dispatcher 创建一个 HTTP 绑定,并将 Dispatcher Url 添加为插入站点。

之后就可以了。

感谢您的帮助! :)

【讨论】:

以上是关于Cors 向我抛出错误“访问被拒绝”的主要内容,如果未能解决你的问题,请参考以下文章

在 Web API 中启用了 CORS,但访问被拒绝

CORS 已启用,但访问仍被拒绝

在 Angularjs 中的 IE10+ 中访问被拒绝 CORs 请求,需要跨源资源共享错误(信息?)

浏览器 11 | Angular 4 - CORS 请求失败(XMLHttpRequest:网络错误 0x80070005,访问被拒绝。)

即使启用了通过 JavaScript 加载的图像,也会向我抛出 CORS 错误

添加文档访问被拒绝