【问题标题】:Access-Control-Allow-Origin issue DataPower SharePoint angularjs appAccess-Control-Allow-Origin 问题 DataPower SharePoint angularjs 应用程序
【发布时间】:2017-09-09 05:35:13
【问题描述】:

我们正在使用 SharePoint 应用程序。该应用程序使用 AngularJS 开发并部署到我们公司的 SAAS 共享点站点中。 AngularJS 应用程序使用托管在应用程序服务器中的 Web 服务。 Angular JS 应用程序调用 DataPower url(反向代理)从应用程序服务器获取数据(没有从 Angular JS 应用程序到应用程序服务器的通信)。当我们调用 URL https://company-qa.mycompany.com/path/services/resource 时,会出现以下错误,

XMLHttpRequest 无法加载 https://company-qa.mycompany.com/path/services/resource。回应 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。原点 'https://mycompany.sharepoint.com' 因此不是 允许访问。响应的 HTTP 状态代码为 401。

company-qa.mycompany.com 是 Data Power URL。我们在 Data Power 中给出了以下 Header Injection 参数

Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin: https://mycompany.sharepoint.com

在应用服务器中,我们也给出了上面的标题。任何线索,需要在 Sharepoint 中做些什么?还是需要从 AngularJS 应用程序传递任何特殊的标头?

非常感谢任何帮助。

【问题讨论】:

  • 响应的 HTTP 状态代码为 401 是错误响应,表示您未经授权。许多/大多数 Web 服务器不会在错误响应中设置 Access-Control-Allow-Origin 标头。因此,您首先需要弄清楚如何访问该 company-qa.mycompany.com/path/services/resource 资源而不会收到错误响应

标签: angularjs sharepoint cors ibm-datapower


【解决方案1】:

在 FSH 中启用选项方法,并在单独的规则中添加选项以匹配操作。然后在 MPGW 高级选项卡中启用正文为空的进程消息。然后在选项调用的第一个请求规则上发送 dp 响应标头,并在后面放置跳过。并发送这些标头 Access-Control-Allow-Credentials:true 访问控制允许来源:https://mycompany.sharepoint.com。不要忘记在实际响应中发送相同的标头。

【讨论】:

    【解决方案2】:

    我假设您在 Windows 上使用 Chrome。要禁用CORS 过滤器,以便您只能处理剩余的异常,请执行以下操作:

    退出 chrome(杀死所有实例)。在按住 Windows 键的同时按 Windows 图标,然后按字母 R。将下面的命令粘贴到结果框中,然后按 Enter。

    chrome.exe --user-data-dir="C:/Chrome 开发会话" --disable-web-security

    这将打开禁用 websecurity 的 Chrome(无 CORS 过滤器)。确保 chrome 打开时有警告消息。运行你的应用程序,让我知道你得到了什么异常。

    另外,请确保您的凭据正确,因为HTTP status code 401暗示您遇到了身份验证问题

    【讨论】:

      猜你喜欢
      • 2017-10-20
      • 2016-04-22
      • 1970-01-01
      • 2014-09-17
      • 1970-01-01
      • 2016-09-20
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多