我试图根据用户在两个文本框中输入的输入在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请求。我没有使用正确的dojo事件。由于这是一个搜索,我使用GET而不是POST。这是relvant 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);
}
});
}