问题很大,但解决方法很简单。
我的旧功能正常运行,必须返回true或false。
function char_existz(char_name, server) {
$.ajaxSetup({async: false});
$.getJSON("/index.php?f=payment&char_name=" + char_name + "&s=" + server, function (json) {
res = json.k;
});
$.ajaxSetup({async: true});
console.log(res === 1);
return (res === 1);
}
在使用它时,我得到警告:[弃用]不赞成在主线程上使用同步XMLHttpRequest,因为它对最终用户的体验有不利影响。
我想在没有警告的情况下尝试使用类似这样的东西在$ .ajax上尝试
function char_existzz(char_name, server) {
$.ajax({
type: "POST",
url: '/payment',
data: {char_name: char_name, s: server},
success: function (data) {
result = (data.k===1);
},
dataType: 'json'
});
return result;
}
ce = char_existz(character.val(), server.val());
if (ce === false) {
alert('Player not found!');
return false;
}
但是它不会在变量中返回true或false,所以我不知道怎么做,因为在旧功能上,当我不触摸 async
时,它是有效的