我需要依次执行三个 REST 调用...阅读文档后,我了解到要链接它们,我必须使用 pipi
或 then
(这是 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
如果您只想在成功时回调(即 ajax
的 success
参数),则这是您想要的。
除此之外,都还好。
关于JavaScript:依次执行多个 REST 调用的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25462409/