0

私はajaxとjqueryを使用して同期httpリクエストを送信しています。

サーバーサイドスクリプトの結果を評価した後 、ajax関数から何らかの値を返したいので、同期リクエストを使用する必要があります。

同期リクエストがブラウザをフリーズさせることはわかっていますが、私の要件により、このリクエストを実行する必要があります。

また、同期リクエストでは onreadystatechange 関数を使用しないことも知っています。リクエストを送信した後、または send 関数の下で結果を評価する必要があります。これにより、私のコードは動作状態になります。

しかし、私の問題は、onreadystatechange関数を使用すると、Firefox >=4バージョンでは動作するが、Firefox 4 バージョン以下では動作しないことです

お願いします。問題がコードにあるのかブラウザにあるのかを調べるのに役立ちます。

私は今、バグを見つけることができません.私は無力です.plz help here is my code

function test(txt_obj) {  
    var keywords = txt_obj.value;
    var SHttpRequestObject = false;  
    var url = "/speller/server-scripts/ifmisspelled_words.html" + '?keywords=' + keywords);  
    var speller_res = 0;  
    if (window.XMLHttpRequest){  
    SHttpRequestObject = new XMLHttpRequest();  
    } else if (window.ActiveXObject){  
    SHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");  
    }  
    SHttpRequestObject.open("POST", url, false);  
    if (SHttpRequestObject){  
    SHttpRequestObject.onreadystatechange = function() {  
    if (SHttpRequestObject.readyState == 4 && SHttpRequestObject.status == 200)  
    {  
    var result = eval("(" + SHttpRequestObject.responseText + ")");  
    if(result.error) {  
    speller_res = 1;  
    } else if(result.word_exist) {  
    speller_res = 1;  
    }  
    else if(result.word_not_exist)  {  
    speller_res = 0;  
    }  
    }  
    };  
    }  
    SHttpRequestObject.send(null);  
    return speller_res;  

    }  
4

1 に答える 1

2

MDNから:

onreadystatechange

警告:これはネイティブコードから使用してはなりません。また、これを同期要求で使用しないでください。

于 2012-08-28T23:04:38.437 に答える