一个响应后,Ajax停止工作

时间:2018-06-08 14:20:42

标签: jquery ajax

我正在使用jQuery Ajax从表单发布一些数据。这是我的代码。

$(() => {
  $("#send-data").on("submit", () => {
    $("#submit-button").prop('disabled', true);
    $("#submit-button").html("SENDING...");
    $.ajax({
      url: 'send.php',
      method: 'POST',
      data: $("#send-data").serialize(),
      success: (response) => {
        if (response.indexOf('1900') != -1) {
          $("#submit-button").removeAttr("disabled");
          $("#submit-button").html("SENDING");
          $('.error-msg').css('display', 'none');
          $('.success-msg').css('display', 'inherit');
        } else {
          $("#submit-button").removeAttr("disabled");
          $("#submit-button").html("SENDING");
          $('.success-msg').css('display', 'none');
          $('.error-msg').css('display', 'inherit');
        }
      }
    })

    return false;
  })
})

首次请求时效果很好。但在那个回应后它没有用。错误是Uncaught TypeError: response.indexOf is not a function

response = {"responseCode":1900}

我向API(1)发送请求,然后该API(1)正在向另一个API(2)发送请求。该API(2)将该JSON响应{" responseCode":1900}提供给API(1)。我正在使用CURL(PHP)获得响应。然后我只是将响应发送给ajax。

有人可以帮忙吗?

更新:我已经解决了这个问题。问题出在这些API上。

1 个答案:

答案 0 :(得分:0)

根据您的评论,您收到的json对象不是字符串。

因此你可以做到

if (response.responseCode != 1900)