2012-08-14 29 views
3

如Microsoft在this article中所述,您需要在下载应用程序的web服务上承载xml配置文件,以允许应用程序进行跨域调用。在Silverlight中允许跨域调用

有没有解决这个问题的方法?我的silverlight应用程序可以运行OOB或可能托管在某个随机的web服务器上(其中不能放置crossdomain.xml或clientaccesspolicy.xml)。

我需要从silverlight应用程序进行的调用是调用各种json web服务(使用ServiceStack中的SilverlightServiceClient),但是我不提前知道该URL。

干杯!

+1

跨域文件需要在服务器上不在域中提供Silverlight应用程序。如果只是回拨到安装应用程序的站点,则可能没有问题(或者,如果OOB始终需要,您可能必须删除OOB)。 – 2012-08-14 10:41:10

回答

2

听起来你并不是真的在跨域的情况下,但不知道你的JSON服务的位置。您所参考的文章涉及您要在除托管Silverlight应用程序的服务器之外的服务器上调用服务的位置。

如果 JSON的服务在其他机器上,在你的控制,那么你应该从你的网络服务器,而不是你的客户打电话给他们。那么没有跨域问题。您只需将自己的API中的调用包装在自己的Web服务器上(这样可以在第三方服务消失的情况下为您提供额外的分离级别)。

我不确定的唯一的事情是如果OOB模式记住它来自哪个服务器(但我认为它)。

+0

是的,OOB模式记住它来自哪里。一个明显的证据是自动更新功能。 – jv42 2012-08-20 09:28:18

0

查看如何利用全球这个问题(或每服务)的HTTP头,以使CORS与ServiceStack:

servicestack REST API and CORS

+0

Silverlight客户端强制执行跨域访问限制。你能解释一下在这种情况下会有什么帮助的'servicestack'吗? – 2012-08-14 19:09:39

+0

你试过了吗?请参阅:http://enable-cors.org/ – mythz 2012-08-14 19:12:03

+0

我已阅读概述...但他们似乎并未回答如何使用该技术适用于此* Silverlight特定问题。你能用简单的术语解释一下吗? – 2012-08-14 19:34:00

相关问题