JavaScript:依次执行多个 REST 调用的正确方法

标签 javascript ajax rest

我需要依次执行三个 REST 调用...阅读文档后,我了解到要链接它们,我必须使用 pipithen (这是 pipe 的别名)。我对 JavaScript 还很陌生,我想知道以下代码片段是否是正确的方法:

var baseUrl = "http://localhost:9000/auth";
var appId = this.appId
$.ajax({
  type: "GET",
  url: baseUrl + "/apps/" + appId + "/apikey"
}).then(function(data) {
  log("apiKey: " + data.apiKey);
  $.ajax({
    type: "POST",
    data: JSON.stringify({ principal: appId, secret: data.apiKey }),
    url: baseUrl + "/apps/credentials",
    contentType: "application/json"  
  }).then(function(data) {
    log("token: " + data.token);
    $.ajax({
      type: "GET",
      headers: { "Authorization": "Token " + this.value },
      url: baseUrl + "/users/credentials"
    }).then(function(data) {
      log("tokeType: " + data.token.header.typ.split('/')[1]);
      log("exp: " + data.token.claims.exp);
    })
  })
});

如您所见,每次调用都需要上一次调用返回的数据。任何改进建议都非常受欢迎。

最佳答案

使用then ,无论 ajax 调用成功还是失败,您都会收到回调,这可能并不理想,因为您依赖它的成功。 done如果您只想在成功时回调(即 ajaxsuccess 参数),则这是您想要的。

除此之外,都还好。

关于JavaScript:依次执行多个 REST 调用的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25462409/

相关文章:

javascript - 单击一次将图像从其设置位置移动,然后单击一下返回到原始位置?

javascript - JQuery : How to put multiple files into formData using dropzone. js 并通过ajax发送

javascript - Ajax 脚本不起作用

php - woocommerce 自定义 ajax 顶级购物车

java - JAX-RS,路径参数不起作用

php - 在域/子域上设置 cookie

javascript - JS OOP 外部原型(prototype)函数调用(作用域)

javascript - 设置react-ga进行转换

java - 从 javascript 调用 java Restful Webservice 时返回值失败

java - 如何在我的 JSF 项目中使用 RESTful Web 服务?