如果我在Javascript代码中使用alert,则Javascript代码正常工作,否则它将';它不工作了
我在side javascript代码中使用XMLHttpRequest 我正在使用jquery-1.7.1 如果在XMLHttpRequest之后使用alert,那么下一个代码将顺利工作,但是当删除该警报时,下一个语句不会获得在XMLHttpRequest块内初始化的变量值 下面是我正在使用的代码如果我在Javascript代码中使用alert,则Javascript代码正常工作,否则它将';它不工作了,javascript,jquery,xmlhttprequest,Javascript,Jquery,Xmlhttprequest,我在side javascript代码中使用XMLHttpRequest 我正在使用jquery-1.7.1 如果在XMLHttpRequest之后使用alert,那么下一个代码将顺利工作,但是当删除该警报时,下一个语句不会获得在XMLHttpRequest块内初始化的变量值 下面是我正在使用的代码 var dyn_data=''; if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XM
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;
}
}
}
谢谢你的回复。这是有效的。