未定义的错误,它不应该是Jquery

时间:2015-12-18 18:25:40

标签: jquery

enter image description here

执行此操作时出现此错误:

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

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

2 个答案:

答案 0 :(得分:1)

因为你在post回调方法范围内声明了变量访问码。

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')

如果您尝试上述代码,则可能会收到警报inital value,因为即使在$.post收到服务器的响应之前,您的警报线也可能会执行。

答案 1 :(得分:1)

有时$ .post请求需要更多时间才能成功,而下一代码如果依赖$ .post正文,那么我们就会面临这样的情况,请这样做

IBAction

或者像这样

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