【问题标题】:Silverlight Localhost on XamppXampp 上的 Silverlight 本地主机
【发布时间】:2011-03-14 14:03:38
【问题描述】:

我正在尝试从本地托管在 Xampp 上的 PHP、MySQL 服务将数据检索到我的 SL 应用程序。 我可以看到我的 php 文件运行正常并通过 JSON (http://localhost/silverlight/data.php) 提供结果,但 SL 无法接收它。我相信它与正确的 URl 路径有关,但我无法弄清楚。另外我把clientaccesspolicy.xml文件放到允许跨域访问但没有用:(

 public partial class MainPage : UserControl
{
    WebClient wc = new WebClient();
    ObservableCollection<ToDoItem> myToDoList = new ObservableCollection<ToDoItem>();
    string baseURI = "http://localhost/silverlight/";

    public MainPage()
    {
        InitializeComponent();
        wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
        wc.DownloadStringAsync(new Uri(baseURI + "data.php",UriKind.Absolute));
    }



    void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    { 

        if (e.Error == null && e.Result!= "")
        { JsonValue completeResult = JsonPrimitive.Parse(e.Result);
            string resultType = completeResult["returnType"].ToString().Replace("'", "").Trim();}

【问题讨论】:

  • 能否请您发布您的clientaccesspolicy.xml 文件并仔细检查它是否位于http://localhost/clientaccesspolicy.xml
  • 取自MSDN的clientpolicy.xml为:[code] [/code]

标签: php mysql silverlight json silverlight-4.0


【解决方案1】:

您使用的clientaccesspolicy.xml 文件只允许跨域访问Web 服务请求(由http-request-headers="SOAPAction" 指定)

要让 WebClient 以您使用的方式工作,您还需要启用内容请求。

尝试指定http-request-headers="*"http-request-headers="SOAPAction,Content-Type"

另外,请检查clientaccesspolicy.xml 文件是否位于主机的根目录,即http://localhost/clientaccesspolicy.xml。最终,当您决定部署应用程序时,您必须确保文件也放置在部署主机的根目录中,例如http://example.org/clientaccesspolicy.xml

【讨论】:

  • 谢谢,我刚刚将 clientaccesspolicy.xml 放到本地主机上,一切都开始工作了 :)
猜你喜欢
  • 2012-08-17
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 2018-08-10
  • 2018-11-22
  • 2017-11-06
  • 2015-10-03
相关资源
最近更新 更多