2017-10-04 59 views
0

我有以下ajax调用嵌套在另一个,但第一个运行后,没有任何记录到控制台,同时它应该。问题在哪里?嵌套AJAX调用成功函数不会运行

$.ajax({ 
    url: "https://ck:8081/get-username", 
    type: "get", 
    success: function (response) { 
     userName = response 
     $.ajax({ 
      url: "https://ck:8081/new-chatuser?username=" + userName, 
      type: "get", 
      success: function (response) { 
       console.log('response' + response) 
       $('onlineMembers').append(response) 
      } 
     }) 
    } 
}) 
+0

可能是你从来没有成功的场景。尝试添加一个'失败'的情况下,并尝试登录。另外,尝试为'response'使用不同的变量名称,因为它们彼此嵌套。 – Panther

+0

据推测其中一个失败。您需要进行一些基本的调试,因此,作为第一步,请在浏览器的开发人员工具中检查控制台和网络选项卡是否有错误以及非200响应代码。 – ADyson

+0

'$('onlineMembers')'应该是'$('#onlineMembers')'或'$('。onlineMembers')' – ibubi

回答

0

有最有可能在您发送的请求的一个失败remedie这一点,你需要处理的错误,如下面的代码来描述:

$.ajax({ 
    url: 'https://ck:8081/get-username', 
    type: 'get', 
    success: function(response1) { 
     console.log(`First succeeded : ${response2.toString()}`); 
     $.ajax({ 
      url: 'https://ck:8081/new-chatuser?username=' + response1, 
      type: 'get', 
      success: function (response2) { 
       console.log(`Second succeeded : ${response2.toString()}`); 
       $('onlineMembers').append(response2); 
      }, 
      error: function(error) { 
       console.log(`Second failed : ${error.toString()}`); 
      } 
     }); 
    }, 
    error: function(error) { 
     console.log(`First failed : ${error.toString()}`); 
    } 
}); 

您可能希望改变$('onlineMembers'),因为我不认为你使用的选择器是正确的。