Xampp上的Silverlight Localhost
我试图从XAMPP本地托管的PHP,MySQL服务中检索数据到我的SL应用程序。 我可以看到我的PHP文件运行正常,并通过JSON(http://localhost/silverlight/data.php)传递结果,但SL无法接收它。我相信它与正确的URL路径有关,但我无法弄清楚。此外,我的推杆clientaccesspolicy.xml文件以允许跨域访问但无济于事:(Xampp上的Silverlight Localhost
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
文件允许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放到本地主机上,一切都开始工作:) – Jim 2011-03-16 04:51:57
能否请您发表您的'clientaccesspolicy.xml'文件,并仔细检查它位于'HTTP://本地主机/ clientaccesspolicy.xml' – 2011-03-14 14:24:29
从MSDN采取的clientpolicy.xml是: [代码] 跨域访问> access-policy> [/ code] –
Jim
2011-03-15 04:24:41