WEB开发网
开发学院图形图像Flash Silverlight 2.0 正式版跨域提交数据全攻略 阅读

Silverlight 2.0 正式版跨域提交数据全攻略

 2008-10-27 11:49:10 来源:WEB开发网   
核心提示:【注】本文代码基于 Silverlight 2.0 正式版,Silverlight 2.0 正式版发布之后,Silverlight 2.0 正式版跨域提交数据全攻略,在 HttpWebrequest 方面也发生了一些变化,以前的代码正式版里面可能就无法运行了,当然,提交到 aspx 页面上也没有问题的,具体的变化主要有

【注】本文代码基于 Silverlight 2.0 正式版。

Silverlight 2.0 正式版发布之后,在 HttpWebrequest 方面也发生了一些变化,以前的代码正式版里面可能就无法运行了,具体的

变化主要有:

1,在调用 HttpWebRequest.BeginGetResponse() 之前,Request 流必须关闭;

2,HttpWebRequest.EndGetResponse() 抛出的异常,正式版之前,HttpWebRequest.BeingGetResponse() 中跨域、跨协议访问抛出安全性异常,其他的请求都返回404错误,现在,HttpRequest.EndGetResponse()的错误将作为异常抛出,涉及安全问题的错误抛出 SecurityException,非成功的请求会抛出 WebException 异常,WebException.Response 被设置成 HttpStatusCode.NotFound。

由于 HttpWebrequest 发送的是异步请求,如果要与界面交互,还涉及到线程同步的问题,如果不进行线程同步,会报告“跨线程访问无效”的错误。下面就以实际的例子来向一个 Java Servlet 地址提交数据,将提交的数据返回到当前界面中。当然,提交到 aspx 页面上也没有问题的,只需要在 Page_Load 事件处理方法里加入下面的代码即可:

查看复制到剪切板打印

protected void Page_Load(object sender, EventArgs e)
{
 if (Request.RequestType.Equals("POST"))
 {
  Response.ClearContent();
  Response.ClearHeaders();
  Response.Write("您提交的数据是:" + Request.Params.Get("data"));
  Response.End();
  return;
 }
}

如果提交到 Java Servlet,则测试代码可以写:

查看复制到剪切板打印

1 2 3  下一页

Tags:Silverlight 提交

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接