0

我在 Internet 上有一个 RESTful 服务,但 silverlight 需要跨域设置,我需要使用 Silverlight 使用此服务,我曾尝试将 WCF 服务作为中间件,但不幸的是这不起作用。

4

3 回答 3

1

您可以尝试使用Javascript Bridge。我没有尝试过这种方法,但您可以使用 ajax 调用,然后通过 JS 桥“推送”到 SL。

于 2013-04-26T20:54:44.977 回答
1

为服务器端创建一个 util 类,例如Util.DoRequest(string address):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 ();
于 2013-04-29T06:02:36.273 回答
1

与其尝试未知的方式,不如在服务器中放置一个跨域策略文件。为什么服务器中不需要有跨域策略文件和客户端访问文件?有什么具体原因吗?

于 2013-04-29T06:07:07.087 回答