Javascript JSP未从Servlet接收AJAX响应
我有一个简单的jsp页面,它向servlet发送ajax请求并等待响应。不幸的是,经过多次尝试后,它没有收到响应。正在传输ajax请求,但未收到响应 现在,我的页面上有一个下拉列表和一个文本框。我正在尝试获取下拉列表中选择的值,以便在下拉列表的“onchange”事件的文本框中打印。 这是我的密码。任何有关这方面的帮助都是非常欢迎的 JSP页面Javascript JSP未从Servlet接收AJAX响应,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个简单的jsp页面,它向servlet发送ajax请求并等待响应。不幸的是,经过多次尝试后,它没有收到响应。正在传输ajax请求,但未收到响应 现在,我的页面上有一个下拉列表和一个文本框。我正在尝试获取下拉列表中选择的值,以便在下拉列表的“onchange”事件的文本框中打印。 这是我的密码。任何有关这方面的帮助都是非常欢迎的 JSP页面 <script> function ajaxrequest(){ return new XMLHttpReque
<script>
function ajaxrequest(){ return new XMLHttpRequest();}
function ac()
{
var myajaxrequest = new ajaxrequest();
if(myajaxrequest==null){alert("AJAX NOT WORKING");}
else
{
alert("AJAX WORKING");
var ind2=document.getElementById("dd1").value;
myajaxrequest.onreadystatechange=connection;
myajaxrequest.open("GET", "../ajaxservlet?dd1="+ind2,true );
myajaxrequest.send(null);
}
}
function connection()
{
if(myajaxrequest.readyState==4)
{
var x=myajaxrequest.responseText;
document.getElementById("result").innerHTML = x;
}
}
</script>
<body>
<form id = "form1" name ="form1" >
<select id="dd1" name="dd1" onchange= "ac()">
<option>Please select </option>
<option>ankur</option>
<option>akshay</option>
</select>
<input type="text" id="result" name="result" />
</form>
</body>
下拉列表中选择的值将在控制台中打印,但不会传回。
谢谢您的时间。
myajaxrequest
是ac()
函数的本地项,因为您使用了var
关键字。您不能在connection()
函数中访问它
尝试在ac()
本身中声明您的connection()
函数
不必使用XHR级别2检查readyState
的状态,只需将处理程序附加到onload
事件即可
顺便说一句,如果原生
XHR
不受支持ajaxrequest()
将抛出错误;它不会返回null。尝试全局初始化myajaxrequest
谢谢。我将函数ac()更改为这个函数ac(){var ind2=document.getElementById(“dd1”).value;$.ajax({type:“GET”,url:../ajaxservlet?dd1=“+ind2,success:function(text){document.getElementById(“result”).value=text;}}现在可以工作了。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("hitting servlet");
String abc = request.getParameter("dd1");
System.out.println(abc);
PrintWriter pw=response.getWriter();
response.setContentType("text/html");
pw.println(abc);
}