我在互联网上有RESTful服务但Silverlight需要跨域设置,我需要使用Silverlight使用此服务,我已经尝试过将WCF服务作为中间件,但遗憾的是这不起作用。
答案 0 :(得分:1)
您可以尝试使用Javascript Bridge。我没有尝试过这种方法但你可以使用ajax调用然后通过JS桥“推送”到SL。
答案 1 :(得分:1)
为服务器端创建一个util类,例如 Util.DoRequest(字符串地址):string
来自msdn:
通过WCF RIA服务向您的客户返回readStream.ReadToEnd
。(域名服务类)
通过这种方式,如果您的服务器可以访问此RESTful服务,或者它已经位于那里,那么您的xap
不需要任何跨域配置。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create (args[0]);
// Set some reasonable limits on resources used by this request
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
// Set credentials to use for this request.
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Console.WriteLine ("Content length is {0}", response.ContentLength);
Console.WriteLine ("Content type is {0}", response.ContentType);
// Get the stream associated with the response.
Stream receiveStream = response.GetResponseStream ();
// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8);
Console.WriteLine ("Response stream received.");
Console.WriteLine (readStream.ReadToEnd ());
response.Close ();
readStream.Close ();
答案 2 :(得分:1)
最好将跨域策略文件放在服务器中,而不是尝试未知方式。为什么您不需要在服务器中拥有跨域策略文件和客户端访问文件?它有什么具体原因吗?