在silverlight 应用程序中,我想从HTTP 子域访问silverlight .xap 文件的页面,但让Web 服务通过HTTPS 访问不同的子域以获取敏感信息。
我在子域的根目录下设置了clientaccesspolicy.xml,它允许silverlight 应用程序通过http 访问其服务,但不能通过https。它给出了跨域访问错误,如果没有适当的客户端访问策略,它通常会给出。
我知道浏览器本身对混合 http 和 https 有很多限制。我是否试图做一些不允许的事情?
在silverlight 应用程序中,我想从HTTP 子域访问silverlight .xap 文件的页面,但让Web 服务通过HTTPS 访问不同的子域以获取敏感信息。
我在子域的根目录下设置了clientaccesspolicy.xml,它允许silverlight 应用程序通过http 访问其服务,但不能通过https。它给出了跨域访问错误,如果没有适当的客户端访问策略,它通常会给出。
我知道浏览器本身对混合 http 和 https 有很多限制。我是否试图做一些不允许的事情?
查看:http ://silverlight.net/forums/t/12741.aspx
您可以对同一域进行 https 调用或 http 跨域调用,但不能进行 https 跨域调用。
这在 http://msdn2.microsoft.com/en-us/library/cc189008(VS.95).aspx中有描述
(请参阅矩阵中的“如果不是 HTTPS”)作者:JohnSpurlock
This is out of date since Silverlight 2.0 was released. You can now do most cross-domain scenarios with the appropriate configuration. http://msdn.microsoft.com/en-us/library/cc197955(VS.95).aspx
这里需要注意的重要一点是,您必须有权访问域请求的“ROOT”级别,并且 clientaccesspolicy.xml 必须位于该级别。
例如,如果您有一个生产环境,您的应用程序位于负载均衡器后面,该负载均衡器像大多数大公司一样通过 URI 将流量引导到您的应用程序,那么您就会遇到一些问题。
示例: http: //mydomain.com/MyApplication/ * 转到您的应用程序所在的服务器。 http://mydomain.com/clientaccesspolicy.xml 是策略所在的位置。