我们正在使用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应用程序传递任何特殊标题?
任何帮助都非常感激。
答案 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。别忘了在实际响应中发送相同的标题。