不应出现的未定义错误';不要是Jquery

不应出现的未定义错误';不要是Jquery,jquery,Jquery,执行此操作时,我会出现以下错误: var request = 'randomcode'; $.post('../php/forms/postrequest.php', 'type=' + request, function (response) { var accesscode = response; }); alert(accesscode); 但这似乎是正确的。。。错误是什么?因为您在post回调方法范围内声明了变量accesscode var request = 'randomc

执行此操作时,我会出现以下错误:

var request = 'randomcode';
$.post('../php/forms/postrequest.php', 'type=' + request, function (response) {
    var accesscode = response;
});
alert(accesscode);

但这似乎是正确的。。。错误是什么?

因为您在post回调方法范围内声明了变量accesscode

var request = 'randomcode';
$.post('../php/forms/postrequest.php', 'type=' + request, function (response) {
    var accesscode = response;
    alert(accesscode);
});
您可以在回调方法范围之外定义它,并使用回调方法范围之外的变量发出警报。但是来自服务器的值可能不可用,因为ajax是异步的,甚至在ajax代码收到响应之前,您可能正在访问变量值

var request = 'randomcode';
var accesscode ='inital value';
$.post('../php/forms/postrequest.php', 'type=' + request, function (response) {
    var accesscode = response;

});
alert(accesscode);  // will alert('initial value')

如果您尝试上面的代码,您可能会得到警报
初始值
,因为您的警报行可能会在
$之前执行。post
收到服务器的响应

有时$.post请求需要更多的时间才能成功,下一个代码如果依赖于$.post主体,那么我们将面临这样的情况,像这样做吗

var request = 'randomcode';
var accesscode = "";
$.post('../php/forms/postrequest.php', 'type=' + request, function (response) {
    accesscode = response;
});
alert(accesscode);
var request = 'randomcode';
$.post('../php/forms/postrequest.php', 'type=' + request, function (response) {
   var accesscode = response;
alert(accesscode);
});
还是像这样

var request = 'randomcode';
var accesscode = "";
$.post('../php/forms/postrequest.php', 'type=' + request, function (response) {
    accesscode = response;
});
alert(accesscode);
var request = 'randomcode';
$.post('../php/forms/postrequest.php', 'type=' + request, function (response) {
   var accesscode = response;
alert(accesscode);
});

尝试在发布前声明accesscode。或者在PostSome$中使用alert。post请求需要更多的时间才能成功,下一个代码如果依赖于$.post正文,那么我们将面临这种情况。