3

可能重复:
使用 Javascript 使用 Web 服务

请注意,我仍然习惯于 JavaScript。基本上,我需要编写一个 HTML 文件,该文件使用 Javascript 来调用几个 Web 服务方法(来自与 HTML 文件相同的服务器),而无需使用 Ajax 或可能需要单独安装的其他任何东西。我们已经启动并运行良好的 Web 服务,以及一些 JS。这需要适用于 IE、FF 和 Chrome,包括“落后于时代”几年的计算机。什么是一个非常简单的方法来做到这一点?再说一次,我仍然对 JavaScript 有点摸不着头脑,所以我很难理解和使用我见过的一些例子。谢谢!

编辑:这是我一直在尝试的那种事情的一个例子:

<html>
<head>
   <title>Hello World</title>
   <script language="JavaScript">
      var iCallID;
      function InitializeService(){
     alert("spam");
     try {
            service.useService(<WSDL address>, 
                  "HelloWorldService");
     } catch (e) {
        alert(e.message);
     }
     alert("spam");
         service.HelloWorldService.callService("HelloWorld");
     alert("spam");
      }
      function ShowResult(){
     alert("spam");
         alert(event.result.value);
     alert("spam");
      }
</script>

我收到“垃圾邮件”,然后是“对象不支持此属性或方法”,然后什么也没有。

4

2 回答 2

5

好吧,AJAX 从驴子时代就已经存在了,真的。但是由于你不熟悉 JS,这里有一个你可以使用的小复制粘贴功能:

function ajax(url,method,data)
{
    var xhr;//ajax object
    data = data || {};//default ajax request
    method = method || 'POST';
    url = url || 'default/url/ajax';
    try
    {//normal browsers
        ret = new XMLHttpRequest();
    }
    catch (error)
    {//older IE browsers, including dead IE6
        try
        {
            ret= new ActiveXObject('Msxml2.XMLHTTP');
        }
        catch(error)
        {
            try
            {
                ret= new ActiveXObject('Microsoft.XMLHTTP');
            }
            catch(error)
            {
                throw new Error('no Ajax support?');
            }
        }
    }
    if (typeof ret !== 'object')
    {//if fails (almost impossible)
        throw new Error('No Ajax, FFS');
    }
    ret.open(method, url, true);//open ajax connection
    ret.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    ret.setRequestHeader('Content-type', 'application/x-www-form-urlencode');
    ret.onreadystatechange = function()
    {
        if (this.readyState === 4 && this.status === 200)
        {
            var response = this.responseText;
            //code you want to see executed when the call was successful
        }
    };
    return ret.send(data);
}

用法:

ajax('your/ajax/url','POST','id=12');

这会将一个 ajax 请求发送回服务器,并带有一个 POST 参数id、值12......玩弄它。一些有用的东西:JSON和 - 虽然我不是一个大粉丝- jQuery,它有一个现成的内置$.ajax方法,只需传递一个对象文字,你就可以开始了。

随意编辑此功能

于 2012-10-29T17:09:22.203 回答
1

如果要使用 Web 服务,则必须在客户端计算机上的运行页面和托管该服务的服务器之间创建连接。这样做的总称是 AJAX。它不是您安装的单独技术,而是描述 JavaScript DOM 中可用的 XMLHttpRequest 对象的使用的术语。有很多资源描述了跨浏览器的使用......

https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

许多 JavaScript 库都有跨浏览器的实现,您可以使用它们而不必担心细节。jQuery、MooTools、原型...等。

于 2012-10-29T17:13:11.623 回答