我向我的控制器发送AJAX请求。这个开发是在JSP和Spring环境中完成的。SimpleFormController被我正在使用的控制器覆盖。
使用JavaScript创建对象并发送请求。此请求不会传递给控制器。
发送请求的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
是以我在dispatcher servlet中提到的方式给出的。
浏览器显示processRequest()函数中的错误,说明httpRequest未定义。但是,在前面的行中,我没有看到这个错误。我在getStates()函数中使用了这个对象。
发布于 2011-11-14 08:08:30
这是因为变量httpRequest
应该在getStates()
函数之外定义。否则,processRequest()
将看不到它。
发布于 2011-11-14 08:30:39
要么在httpRequest
之外声明getStates()
(作为全局变量),要么将其传递给processRequest()
httpRequest.onreadystatechange = function() { processRequest(httpRequest); };
function processRequest(httpRequest) {
https://stackoverflow.com/questions/8118690
复制相似问题