如何在then()中使用$ .ajax?

时间:2019-08-27 09:39:27

标签: jquery ajax

我使用AJAX将一些数据发送到我的apache / php网络服务器(XAMPP)。 我已经用速记语法$ .post运行了它,代码看起来像这样:

return $.post('http://localhost:8099/login.php', {
      loginDataInput : loginDataInput
    }).then((response) => {
      //response = JSON.parse(response)
      return response
    })

但是现在我正在尝试使用长格式$ .ajax,如下所示:

return $.ajax({
      type:"POST",
      url: 'http://localhost:8099/login.php',
      data: loginDataInput
  }).then((response) => {
    return response
  })

它似乎不起作用。 我在php端调试了$ _POST数组,更改了datainput本身,当我使用$ .ajax语法时,点变成了下划线(请参见下文)。我该如何预防?

使用$ .post语法的AJAX调用后,通过json_encode回显的$ _POST数组:

{"loginDataInput":"{\"loginDataMailInput\":\"gruss@imbus.de\",\"loginDataPasswordInput\":\"test2\"}"}

使用$ .ajax语法的AJAX调用后,通过json_encode回显的$ _POST数组:

{"{\"loginDataMailInput\":\"gruss@imbus_de\",\"loginDataPasswordInput\":\"test2\"}":""}

对于$ .ajax版本,我使用了jQuery Doc https://api.jquery.com/jQuery.post/ 向我显示了相当于$ .post速记的$ .ajax。 我省略了数据类型,因为我想使用智能猜测。也许这是问题所在?

1 个答案:

答案 0 :(得分:2)

loginDataInput必须在对象内部。

return $.ajax({
      type:"POST",
      url: 'http://localhost:8099/login.php',
      data: {
        loginDataInput: loginDataInput
      }
  }).then((response) => {
    return response
  })