预执行脚本无法设置环境变量
const env = {
"host": apt.variables.get("host"),
"token": apt.variables.get("token"),
"auth_key": apt.variables.get("auth_key")
}
if (!env.token || !env.auth_key) {
$.ajax({
"url": env.host + '/token/get',
"method": "POST",
"headers": {
"X-Requested-With": "XMLHttpRequest",
"content-type": "application/json"
},
"timeout": "10000",
"async": false,
"data": JSON.stringify({ "username": "xxxx", "password": "xxxx" }),
"success": function (response) {
console.log("successfly");
apt.variables.set("token", response.data.token);
apt.variables.set('auth_key', response.data.auth_key);
console.log("token: %s", apt.variables.get("token"));
},
"error": function(xhr, status, error){
console.log(error);
console.log(xhr);
}
});
}
经过尝试,在success:function中执行以下的代码,均无法设置任何变量,打开查看环境变量界面完全看不到设置上去的变量。
apt.variables.set("token", 1234);
apt.globals.set("token", 1234);
apt.environment.set("token", 1234);
但是把代码旋转到success:function之外,放在$.ajax之外,执行就正常,能设置变量,能在查看器中查看到。
而且就算添加 async: false,请求依旧是异步的。
以上的代码在,apipost 6上没有问题,在apipost 7上从来没有执行成功过。请问题这个问题要怎么解决?
ajax前面加await即可
await $.ajax
果然添加了await 问题就解决了