Welcome

首页 / 脚本样式 / Ajax / ASP.NET 2.0 Ajax - 使用HTTP GET进行调用

ASP.NET 2.0 Ajax - 使用HTTP GET进行调用2011-09-27在使用ASP.NET AJAX异步通信层对Web Service进行异步调用时,默认应用的是HTTP POST方式。但为了提供足够的灵活性,ASP.NET AJAX异步通信层同样允许我们使用HTTP GET进行调用。

使用HTTP GET进行调用时,方法的参数均被序列化成JSON字符串,然后经过URL编码并添加至URL后面送回给服务器处理。关于GET和默认的POST方式的比较,在第2章中已经有过详细介绍,这里不再重复。

若想以HTTP GET的方式对某个Web Service中的方法进行调用,那么只要为该方法添加[ScriptMethod(UseHttpGet = true)]属性即可。例如对于3.1节中的示例程序,我们可以按照如下代码修改服务器端Web Service中方法的定义,注意其中粗体部分:

[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public string SayHelloUsingGET(string name)
{
return string.Format("Hello {0}!", name);
}

再次运行该示例程序,并打开HTTP嗅探器,可以看到本次异步调用确实使用了HTTP GET。如图3-9所示。

在使用HTTP GET请求Web Service时,特别要注意安全性问题。一般来讲,只有在没有暴露敏感信息且没有关键操作(例如删除/更新数据)等安全的情况下,才可以使用HTTP GET。

图3-9 使用HTTP GET调用Web Service