Java 无法在Ajax响应中获取值

Java 无法在Ajax响应中获取值,java,javascript,jquery,ajax,servlets,Java,Javascript,Jquery,Ajax,Servlets,接收请求的servlet-- 这是js文件----- 函数加载脚本(url,回调) { var head=document.getElementsByTagName('head')[0]; var script=document.createElement('script'); script.type='text/javascript'; script.src=url; script.onreadystatechange=回调; script.onload=回调; head.appendChil

接收请求的servlet--

这是js文件-----

函数加载脚本(url,回调)
{
var head=document.getElementsByTagName('head')[0];
var script=document.createElement('script');
script.type='text/javascript';
script.src=url;
script.onreadystatechange=回调;
script.onload=回调;
head.appendChild(脚本);
}
loadScript(“js/json2.js”,myJSCode);
var myJSCode=$(文档).ready(函数(){
$(“#loginForm”).submit(函数(e){
e、 预防默认值();
});
$(“#登录”)。单击(功能(e){
dataString=$(“#loginForm”).serialize();
var id=$(“输入#id”).val();
var pwd=$(“input#pwd”).val();
dataString=“id=“+id+”&pwd=“+pwd;
$.ajax({
类型:“POST”,
url:“登录”,
数据:{
id:id,
pwd:pwd
},
数据类型:“json”,
成功:函数(数据、文本状态、jqXHR){
if(data.success){
$(“#ajaxResponse”).html(“”);
$(“#ajaxsresponse”).append(“欢迎”+data.login.id+“
”; //警报(“ajaxResponse”+data.login.id); 警报(数据['id']); 警报(数据['pwd']); } 否则{ $(“#ajaxResponse”).html(“登录凭据无效!”); } } });
如果我使用1个元素,即'id',我将获得ajaxResponse,但当我尝试获取这两个响应时,我得到的值是未定义的。我尝试了data.login.id和data[id],但无法获得所需的输出。任何帮助都将不胜感激。即使我尝试了JSON.Stringify()

这使得传递到ajax的数据与中的数据不同

    success: function( data, textStatus, jqXHR) {
                     if(data.success){
...
在这个成功回调中,数据是来自服务器的响应,根据服务器返回给您的数据,它具有不同的(或相同的结构)。 如果要打印来自ajax调用的值,只需使用id

$("#ajaxResponse").append("<b>Welcome</b> " + id + "<br>");
$(“#ajaxResponse”)。追加(“欢迎”+id+“
”;

我看到您正在尝试使用“data.login.id”您能检查响应中数据的真实结构吗?添加console.log(数据)或将断点放在回调中,或者简单地添加调试器;代码,它将在不添加断点的情况下为您停止该行中的代码。

谢谢Alex。我将为该行添加+1

  $("#ajaxResponse").append("<b>Welcome</b> " + id + "<br>");

如果不将我的代码更改为这一行,代码就不起作用了。谢谢你的建议。

你能添加原始响应吗?如果我看不到响应,就无法说明你的代码有什么问题。我知道这只是“未定义”,但ajax响应中的数据值是什么?在函数中传递的值(数据、文本状态、jqXHR)?添加console.log(数据)在控制台窗口中您可以看到它。这是我在控制台中得到的——未捕获类型错误:未定义不是函数login.js:52$.ajax.success jquery.js:1075 jquery.Callbacks.fire jquery.js:1193 jquery.Callbacks.self.fireWith jquery.js:7538 done jquery.js:8324jQuery.ajaxTransport.send.callback您能否以我理解您想说的方式操作我的代码。实际上我知道的是我正在从Servlet发送Json数据,这就是为什么我使用数据类型:“Json”,在js中。我将如何检索以json形式从servet发送的数据。直接以id形式获取响应不起作用。显然,我无法掌握的一个部分是,当我创建LoginBean并以字符串形式获取数据时。即数据具有字符串值,我使用data.login.id获取结果,其中login是LoginBean的对象,但在本例中,我我直接拿到了,有什么建议吗?
    success: function( data, textStatus, jqXHR) {
                     if(data.success){
...
$("#ajaxResponse").append("<b>Welcome</b> " + id + "<br>");
  $("#ajaxResponse").append("<b>Welcome</b> " + id + "<br>");
      data: {

                id: $('#id').val(),
                pwd: $('#pwd').val()
            },