Access-Control-Allow-Origin问题DataPower SharePoint angularjs app

时间:2017-04-13 07:48:07

标签: angularjs sharepoint cors ibm-datapower

我们正在使用SharePoint应用程序。该应用程序使用AngularJS开发并部署到我们公司的SAAS sharepoint站点。 AngularJS应用程序使用托管在应用程序服务器中的Web服务。 Angular JS应用程序调用DataPower url(反向代理)从应用程序服务器获取数据(没有从Angular JS app到Application Server的通信)。当我们调用网址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应用程序传递任何特殊标题?

任何帮助都非常感激。

2 个答案:

答案 0 :(得分:1)

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

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

  

chrome.exe --user-data-dir =" C:/ Chrome开发者会话"    - 禁用网络的安全性

这将打开Chrome,并禁用 websecurity (无CORS过滤器)。确保Chrome打开时有一条警告消息。运行你的应用程序,让我知道你得到的例外情况。

此外,请确保您的凭据正确无误,因为HTTP status code 401表示您已遇到身份验证问题

答案 1 :(得分:1)

在FSH中启用选项方法,并添加选项以匹配单独规则中的操作。然后在MPGW高级选项卡中启用主体为空的进程消息。然后在第一个请求选项调用请求规则发送dp响应头与put skip-side。并发送这些标头Access-Control-Allow-Credentials:true Access-Control-Allow-Origin:https://mycompany.sharepoint.com。别忘了在实际响应中发送相同的标题。