在没有Ajax或类似的东西的情况下,您可以在JavaScript中调用Web服务的最简单方法是什么?

Pan*_*sis 3 javascript web-services

可能重复:
使用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>
Run Code Online (Sandbox Code Playgroud)

我得到"垃圾邮件",然后"对象不支持此属性或方法",然后什么也没有.

Eli*_*gem 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);
}
Run Code Online (Sandbox Code Playgroud)

用法:

ajax('your/ajax/url','POST','id=12');
Run Code Online (Sandbox Code Playgroud)

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

您可以随意编辑此功能