Ajax Jquery函数响应

时间:2017-12-07 09:48:16

标签: javascript jquery ajax

我正在学习使用jQuery Ajax。 function(response)的含义是什么?response == 1response == 2是什么意思?

jQuery.post(ajaxurl, data, function(response) {
  if (response == 1) {
    $saveAlert.addClass('is-success').delay(900).fadeOut(700);
    setTimeout(function() {
      $tieBody.removeClass('has-overlay');
    }, 1200);
  } else if (response == 2) {
    location.reload();
  } else {
    $saveAlert.addClass('is-failed').delay(900).fadeOut(700);
    setTimeout(function() {
      $tieBody.removeClass('has-overlay');
    }, 1200);
  }
});

1 个答案:

答案 0 :(得分:0)

我将解释基础知识:

jQuery.post =您想要将一些数据发布到您的终端

ajaxurl =您的终端地址。通常是API

data =您要与请求一起发送到您的终端的数据。

function(response)是您处理来自端点的响应的地方。

让我们来看看代码。首先,使用您要发布的post向您的端点/ API调用data。然后,您提供一个回调(在您的情况下是一个函数)来处理端点/ API为您提供的响应。

在您的情况下,如果端点以1响应,您已成功发布了数据。如果端点以2响应,则表示您已发布数据并希望重新加载该站点。如果端点未响应12,则无法发布。

帮助您了解jQuery帖子的基础知识:

编写良好的API /端点应该使用正确的HTTP状态代码和状态消息进行响应,并且在正确发布数据和发生错误时应该非常容易注意到。

我认为您的终端没有任何好处。 response == 1response == 2无论如何都不清楚且易于理解。

处理成功和错误的更好方法是使用jquery帖子的donefail处理程序(详见下文)。

$.post( "test.php" );

这将完全忽略调用端点的响应。即你不想处理成功或错误。请不要使用这个。你应该处理成功和错误!

$.post( "test.php", function( data ) {
  //Do something now
});

当端点发送响应时,这将执行您在函数中提供的任何内容。

$.post( "example.php", function() {
  //You successfully reached the endpoint
  console.log( "success" );
})
  .done(function() {
    //Handle success here!
  })
  .fail(function() {
    //Handle error here
  })

这可能是处理成功和错误的首选方式。很明显,如果你到达fail,它就会失败。既易于阅读代码又易于理解jquery帖子!

上面的示例是从jquery文档中复制的。

请注意,donefail的先前处理程序为successerror,但不推荐使用successerror jQuery 3.0!

所以如果你有jQuery版本< 3.0你需要找出你是否需要使用新的或旧的语法,或者你是否需要更新jQuery?

希望这足以让您了解基础知识,并帮助您获得进一步的帮助。我强烈建议你阅读jQuery.post documentation here。我想你也应该阅读w3schools documentation here