2011-11-14 12 views
3

コントローラにAJAXリクエストを送信します。この開発はJSPとSpring環境で行われました。 SimpleFormControllerコントローラ私が使用しています。 JavaScriptを使用するオブジェクトを作成してリクエストを送信します。このリクエストはコントローラに渡されません。この問題に関してご意見がありましたら、私を助けてください。コントローラにAjaxリクエストが渡されていません

リクエストを送信するJavaScriptコード。

function getStates(){ 
    var httpRequest; 
    var country = document.getElementById('countryName'); 
    alert(country); 
    var url = '/developer/register.htm'; 

    url = url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true'); 

    if (window.ActiveXObject) 
    { 
     httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    else if (window.XMLHttpRequest) 
    { 
     httpRequest = new XMLHttpRequest(); 
    } 

    httpRequest.open("GET", url, true); 
    httpRequest.onreadystatechange = function() {processRequest(); }; 
    httpRequest.send(null); 
} 

function processRequest() { 
    if(httpRequest.readyState == 4){ 
     alert("inside ready state"); 
     var response = http.responseText; 
     document.getElementById('states').innerHTML = response; 
    } 
} 

変数urlは私がディスパッチャサーブレットに言及しているかのように与えられています。

ブラウザはHttpRequestのが定義されていないことを伝えるエラーでのprocessRequest()関数を示しています。しかし、私はこれを取得しませんエラー前の行私はこのオブジェクトをgetStates()関数で使用します。誰かがこれについて考えているなら、これを整理するのを助けてください。 事前に感謝し、サポートを感謝します。

答えて

4

可変httpRequestgetStates()の外で定義する必要があるためです。それ以外の場合はprocessRequest()は見えません。

+0

httpRequest.onreadystatechange = function() { processRequest(httpRequest); }; function processRequest(httpRequest) { 
エラーが繰り返されません。ご支援ありがとうございます。しかし、要求はコントローラにリダイレクトされません。もし誰かがこれについて考えているなら、これについて助言してください。 – Nazneen

+0

これらのajax問題を解決するには、[jQuery](http://jquery.com/)または他のjsライブラリを使用することをお勧めします。 Ajaxは非常に複雑であり、これらのライブラリは便利な方法を提供します。 – JSPDeveloper01

+0

ご存じの場合は、図書館の名前を教えてください。また、参考リンクを貼ってください。それは本当に感知できるだろう。あなたの提案をありがとう。 – Nazneen

1

いずれ宣言httpRequest外部getStates()(グローバル変数等)又はprocessRequest()に渡す:私は、変数のスコープを変更したとき

+0

変数のスコープを変更しても、エラーは繰り返されません。ご支援ありがとうございます。しかし、要求はコントローラにリダイレクトされません。もし誰かがこれについて考えているなら、これについて助言してください。 – Nazneen

関連する問題