下面的脚本有什么问题。这里有警报“33here”即将到来,但我没有得到我的json对象。alert(jsontext)
即将出现空白。如果我在浏览器中点击此URL,那么我将获得JSON对象。< / p>
xmlHttp = new XMLHttpRequest();
xmlHttp.overrideMimeType("application/json");
alert('11here');
xmlHttp.open( "GET", "http://<hostname>/appsuite/api/login", true );
alert('22here');
alert(xmlHttp);
xmlHttp.send();
alert('33here');
var jsontext= xmlHttp.responseText;
alert(jsontext);
按照建议尝试但没有工作。我是javascript / ajax.Any中的新问题吗?
xmlHttp = new XMLHttpRequest();
xmlHttp.overrideMimeType("application/json");
alert('Hi 11here');
xmlHttp.open( "GET", "http://<hostname>/appsuite/api/login", true );
alert('Hi 22here');
alert(xmlHttp);
xmlHttp.send();
alert('Hi 33here');
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
alert(xmlHttp.responseText);
}
}
答案 0 :(得分:0)
Ajax以异步方式运行 。您无法完全依赖.open
的请求何时完成,甚至 它将完成。依赖于ajax请求的值的任何代码必须在请求回调中完成。
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
alert(xmlHttp.responseText);
}
}
答案 1 :(得分:0)
开始的好地方是查看MDN提供的示例:https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started
function alertContents(httpRequest) {
try {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
alert(httpRequest.responseText);
} else {
alert('There was a problem with the request.');
}
}
}
catch( e ) {
alert('Caught Exception: ' + e.description);
}
}
请求状态达到200且就绪状态为4后,响应将被填满。