-3

を使用してAJAX呼び出しを行っていXMLHttpRequestます。

IE7では正常に動作していますが、Firefoxで同じことを試してみると、response.write

私は以下の関数を使用しています:

<script type="text/javascript">

        function ddSelect_Change() {
          var xmlhttp;
            if (window.XMLHttpRequest) { // Mozilla, Safari, ...       
                xmlhttp = new XMLHttpRequest();
            }
            else if (window.ActiveXObject) { // IE       
                try {
                    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                }

                catch (e) 
                {
                    try 
                    {
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch (e) 
                    {
                    }
                }
            }   

 xmlhttp.onreadystatechange = function () {
                //alert(xmlhttp.responseText);
                if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
}
}
 var url = "http://" + location.hostname + "Locationurl?Method=methodname";
xmlhttp.open("POST", url);
               xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            xmlhttp.send(); 
}

追加した

私は2つの別々のWebアプリケーションを持っています。1つはtridionWebアプリケーションで、もう1つはカスタムWebアプリケーションです。そして、私はtridionWebアプリケーションからカスタムWebアプリケーションへの対話を行っています。両方のURLが異なるドメインを持っています。Firefoxで0を取得している状態であり、readystateの場合はアラートで(3)を取得していません。

4

2 に答える 2

3

これまでに示したコードは Firefox で動作するはずです。Firefox は XHR をサポートしています。

これが役立つかもしれません: https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

アップデート:

onreadystatechangeは AJAX 呼び出し中に数回発生するため、コールバックを次のように拡張することをお勧めします。

xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState === 4) {
      if (xmlhttp.status === 200) {
        alert(xmlhttp.responseText);
      } else {
        alert('There was a problem with the request.');
      }
    }
  }

xmlhttp.readyState === 4リクエストが完了したことを確認するため、実際に応答する前に応答を警告しようとしません。xmlhttp.status === 200サーバーからを受信した200 OKことを確認し、サーバー側のエラーがないこと、または URL が正しくないことを確認します。

于 2012-08-24T07:24:18.400 に答える
1

jQuery のようなライブラリの使用を検討したことがありますか? これらの問題はすでに処理されています。

SDL Tridion GUI 拡張機能に取り組んでいる場合は、PowerTools プロジェクトで多数の例を確認してください。(http://code.google.com/p/tridion-2011-power-tools/)

于 2012-08-24T07:38:30.920 に答える