执行此操作时出现此错误:
var request = 'randomcode';
$.post('../php/forms/postrequest.php', 'type=' + request, function (response) {
var accesscode = response;
});
alert(accesscode);
但这似乎是正确的......错误是什么?
答案 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);