3

我正在构建一个 AngularJS 应用程序,它将与运行在不同主机上的 RESTful 服务进行交互。由于请求是跨来源的,CORS正在参与其中。由于请求将 JSON 指定为预期的内容类型,因此CORS 预检请求由浏览器触发。直到目前为止。

根据 W3 规范,CORS 预检请求应排除用户凭据。RESTful Web 服务应用程序受 SiteMinder 保护,它被配置为基于 URL强制执行身份验证。Web 服务仅依靠 SiteMinder 进行身份验证和处理授权。这就是无法删除 SiteMinder 的原因。因此,CORS 预检请求返回HTTP 401 Authorization Required。它会阻止浏览器继续执行实际请求。

关于如何在 SiteMinder 受保护的环境中启用 CORS 预检请求的任何想法?提前非常感谢!

4

1 回答 1

1

您可以尝试通过在代理的 ACO 参数中设置 autoauthorizeoptions = yes 来忽略 OPTIONS 方法

++++++++++++++++++++++++++++ 允许自动访问使用 OPTIONS 方法的资源 SiteMinder Web 代理仍会挑战尝试访问的经过身份验证的用户使用 OPTIONS 方法的资源。使用 OPTIONS 方法的一些资源示例包括(但不一定限于)以下内容:

Microsoft® Word 文档 Microsoft® Excel® 电子表格文档 发生此挑战是因为与资源关联的应用程序使用 OPTIONS 方法向 Web 服务器发送请求。由于此请求不包含 SiteMinder cookie,因此 Web 代理会发出质询。

防止用户因这些资源而受到挑战

将以下参数的值设置为 yes: autoauthorizeoptions 自动授权对使用 HTTP OPTIONS 方法的资源的任何请求。

如果将此参数的值设置为 yes,则还要将 PersistentCookies 参数的值设置为 no。

限制:是,否

将 PersistentCookies 参数的值设置为 no。

++++++++++++++++++++++++++++

于 2015-03-03T20:41:42.200 回答