1

我正在尝试根据用户在两个文本框中输入的输入在 Spring MVC 3 应用程序中显示搜索结果。我正在使用 dojo xhrGET 请求(以及用户输入作为几个请求参数)。目的是根据这些框中的值在 dojogrid 中显示搜索结果。

请求(下面列出的示例网址),

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 请求做什么。我没有使用正确的道场事件吗?由于这是一个搜索,我使用的是 GET 而不是 POST。这是相关的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