gpt4 book ai didi

如果我在其中使用警报,Javascript 代码就可以工作,否则它就无法工作

转载 作者:行者123 更新时间:2023-11-28 00:34:57 26 4
gpt4 key购买 nike

我在 JavaScript 代码中使用 XMLHttpRequest。

我使用的是jquery-1.7.1。

如果我在 XMLHttpRequest 之后使用警报,那么下一个代码可以顺利工作,但是当删除该警报时,下一个语句不会获取在 XMLHttpRequest block 内初始化的变量的值。

以下是我正在使用的代码

var dyn_data='';
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
if (xmlhttp)
{
var query = 'ACTION=test&format=text';
xmlhttp.open('POST', 'sample.php');
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttp.send(query);
xmlhttp.onreadystatechange = function()
{
var arrayindex=0;

if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
dyn_data=xmlhttp.responseText;
}
}
}
var obj = $.parseJSON(dyn_data);
alert(obj);
var data=obj;

如果我在上面的代码中评论警报,那么它不起作用。

我在警报处尝试了以下声明,但它对我来说也不起作用。

setTimeout(function(){  }, 5000);

任何帮助/建议将不胜感激。

最佳答案

XMLHttpRequest 是异步的。这意味着在到达 $.parseJSON 行之前尚未设置 dyn_data 值。所有依赖响应的代码都应放置在 onreadystatechange 处理程序中。试试这个:

var xmlhttp;
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
else if (xmlhttp) {
var query = 'ACTION=test&format=text';
xmlhttp.open('POST', 'sample.php');
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttp.send(query);
xmlhttp.onreadystatechange = function() {
var arrayindex = 0;
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var obj = $.parseJSON(xmlhttp.responseText);
console.log(obj);
var data = obj;
}
}
}

关于如果我在其中使用警报,Javascript 代码就可以工作,否则它就无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28607210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com