从Javascript调用Web服务 - 它在幕后做了什么?

时间:2010-01-21 17:13:23

标签: .net asp.net javascript web-services

最近,一位同事不得不从脚本中调用.NET 2.0 Web服务。我们注意到我们必须通过AJAX扩展或升级到3.5来放置[ScriptService]属性。

这就是我所能找到的 - 没有人解释它在幕后做了什么!

任何人都可以启发我吗?

由于 邓肯

1 个答案:

答案 0 :(得分:2)

严格地说,您不需要对Web服务执行任何操作,以使其可以从脚本中调用。

见这里: How to call web service using vbscript (synchronous)?

Web服务只是一个可通过远程协议(通常是基于Web的协议)寻址的系统。通常这意味着HTTP。可以通过特定URL上的HTTP GET执行简单请求 - URL路径中的段或查询字符串构成Web服务请求的“参数”。

客户端可能会将HTTP GET发送到

http://server/appPath/p1/p2/p3

监听那里的应用程序将负责解压缩该URL,可能将p1,p2,p3映射到查询参数,然后确定如何响应它。

对于更复杂的请求,事务可能是HTTP POST,并且有效内容的格式是XML,JSON或应用程序指定的其他内容。

在这种情况下,URL可能如此:

http://server/appPath/resource1

和POST'd有效负载(如果使用JSON)可能是:

{"Age":35,"FirstName":"Peyton","LastName":"Manning"} 

如果使用XML,则可能是:

<person>
  <Age>35</Age>
  <FirstName>Peyton</FirstName>
  <LastName>Manning</LastName>
</person>

您可以在任何编程语言中形成符合这些约束的请求,包括Javascript等脚本。

如果您使用的是SOAP,那么该XML文档需要包装在SOAP信封中。 有关示例,请参阅Calling WCF service by VBScript(VBScript,但可轻松转换为Javascript)。

相关问题