0

以下の Microsoft 標準に従って、変数をリクエストに追加しました。

私は ajax リクエストに取り組んでいましたが、いつものように、IE は扱いにくい標本です。AJAX リクエストを実行する代わりに、XDR を実行できることがわかりました。クロムの私のコードは機能するので、宛先サーバーが機能していることを知っており、リクエストが成功すると想定されることが行われます。以下は、XDR のコード セグメントです。

if ($.browser.msie && window.XDomainRequest) {
            var xdr = new XDomainRequest();
            //var webstring = location.protocol +"//"+ location.host +"/" + WEBSERVICE_URL + "/test";
            //WEBSERVICE_URL = "webservices/FormDesigner.svc";
            var webstring = WEBSERVICE_URL + "/test";
            var openRetVal = xdr.open("GET", webstring);  //added this var as it supposidly gets a return value from the function call.
            xdr.onload = function () {
                var JSON = $.parseJSON(xdr.responseText);
                if (JSON == null || typeof (JSON) == 'undefined') {
                    JSON = $.parseJSON(data.firstChild.textContent); 
                }
                //below is my onsuccess call which is called by both successes for IE and NON-IE processes allowing all stuff to be piped into 1 call.
                ajax_success(JSON);
            };
            xdr.ontimeout = function () {
                alert("XDR Error.  Timeout");
            }
            xdr.onerror = function () {
                alert("XDR Error.  Unable to do a Cross Domain Server Request.");
            };
            var sentRetVal = xdr.send();  //added this var as the function is suppose to return success or error as per microsoft.

        }

当然、私が目指しているものではないonerrorを常に返します。テスト目的で、今のところ同じドメイン内の何かにpingを送信しているため、他のものはありません。私が言ったように、それは今のところ他のブラウザで動作します...私が気付いていない不適切なフォーマットはありますか? このテスト リクエストではデータも送信されません。

4

1 に答える 1

3

すでにjQuery を使用している場合は、すべてのブラウザにjQuery を使用するだけで、IE で問題が発生することはありません。

于 2012-07-10T16:01:54.097 に答える