3

重複の可能性:
Javascript を使用した Web サービスの利用

私はまだ JavaScript に慣れていないことに注意してください。基本的に、Javascript を使用して (HTML ファイルと同じサーバーから) いくつかの Web サービス メソッドを呼び出す HTML ファイルを作成する必要があります。JS だけでなく、Web サービスも正常に稼働しています。これは、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 に答える