1

ユーザーが 2 つのテキスト ボックスに入力した入力に基づいて、Spring MVC 3 アプリで検索結果を表示しようとしています。私は dojo xhrGET request (およびユーザー入力をいくつかの要求パラメーターとして使用しています) を使用しています。これらのボックスの値に基づいて検索結果を dojogrid に表示することを意図しています。

リクエスト (下記のサンプル URL)、

http://localhost:8080/SampleApp/subscribers?customerId=091300036&searchBy=ci) 

ブラウザのアドレスバーに貼り付けると正常に動作します。ただし、xhrGET 経由で呼び出すと、応答が表示されず、コントローラーに接続していません。

FireBug では、両方のケースで同じリクエストが表示されます。

GET http://localhost:8080/SampleApp/subscribers?customerId=091300036&searchBy=ci 200 OK 

ただし、(ブラウザー経由で) 成功した場合の応答は JSON オブジェクトですが、dojo 要求の場合は、応答に jsp ソース コード全体が含まれています。

xhrGET リクエストで何をすべきですか。正しい道場イベントを使用していませんか? これは検索なので、POST ではなく GET を使用していました。関連する html および js コードを次に示します。

    <input id="customerId" >    
    <input id="searchName" >
    <button dojoType="dijit.form.Button" type="submit" onclick=search()>
                Search
    </button>   

    dojo.ready(function(){
        var textbox = new dijit.form.TextBox({
            value: "Search By Name or Email",
            onFocus: function(){ 
                var ph = dijit.byId("searchName");
                ph.attr("value",""); },
            placeHolder: "Search By Name or Email"
        }, "searchName");
        textbox.startup();

    });

    dojo.ready(function(){
        var textbox = new dijit.form.TextBox({
            value: "Customer Id",
            onFocus: function(){ 
                var ph = dijit.byId("customerId");
                ph.attr("value",""); },
            placeHolder: "Customer Id"
        }, "customerId");
        textbox.startup();

    });        

    function search() {
        var criteria1 = dijit.byId("customerId").value;
        var criteria2 = dijit.byId("searchName").value;
        dojo.xhrGet({
            // The URL of the request
            url: "/SampleApp/subscribers?customerId=" + criteria1 + "&searchBy=" + criteria2,
            handleAs: "json",
            load: function(newContent) {

            },
            // The error handler
            error: function() {
                alert(error);
            }
        });
    }
4

0 に答える 0