最近一位同事不得不从脚本中调用 .NET 2.0 Web 服务。我们注意到我们必须放置 [ScriptService] 属性,要么通过 AJAX 扩展,要么升级到 3.5。
这就是我所能找到的全部 - 没有人解释它在幕后做了什么!
谁能教教我?
谢谢 邓肯
最佳答案
严格来说,您不需要对 Web 服务做任何事情就可以通过脚本调用它。
看这里: How to call web service using vbscript (synchronous)?
网络服务只是一个可通过远程协议(protocol)寻址的系统,通常是基于网络的协议(protocol)。通常这意味着 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
如果使用 JSON,POST 的有效负载可能是:
{"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)。
关于.net - 从 Javascript 调用 Web 服务 - 它在幕后做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2111234/