我正在尝试根据用户在两个文本框中输入的输入在 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);
}
});
}