在javascript responseText中将临时变量声明为全局变量
Declaring a temporary variable into a global variable in javascript responseText
我正试图将xhr.responseText变成一个变量,然后提醒它,但由于一个奇怪的原因,我无法这样做。
test2 = ""
function process(){
url = "http://www.example.com/example.html"
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4){
test2 = xhr.responseText
}
}
xhr.send();
}
process();
alert(test2);
感谢任何能在这个问题上提供帮助的人。
您正在启动一个异步请求。进程功能执行后,alert
将立即启动。稍后,当响应返回时,onreadystatechange
被激发。如果您计划对AJAX查询的结果执行任何操作,那么应该在onreadystatechange
中执行。像这样。。。
test2 = ""
function process(){
url = "http://www.example.com/example.html"
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4){
test2 = xhr.responseText
alert(test2);
}
}
xhr.send();
}
process();
您在test2变量填充内容之前发出警报(因为XMLHTTPRequest需要一些额外的时间来完成)
var test2 = "";
function process(callback){
url = "http://www.example.com/example.html"
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4)
{
test2 = xhr.responseText;
callback();
}
}
xhr.send();
}
process(callbackFunction);
function callbackFunction()
{
alert(test2);
}
同步调用通常不是一个好的做法。也许jQuery是你可以使用的东西?
示例:
$.ajax({
url: "http://www.example.com/example.html",
success: function(data) {
// now you can do something with the data
alert(data);
}
});
相关文章:
- 使用同一对象中的其他变量声明变量
- 如何将变量声明为全局变量
- 如何将变量声明为全局变量?用case foreach?Javascript
- 理解bootstrap.js变量声明
- 将 Javascript 变量声明为 PHP 形式
- 单个逗号分隔的变量声明和多个声明之间的区别是什么
- Do变量声明初始化函数
- Javascript变量声明:什么是“;var myVariable={}”;
- javascript中不同类型的变量声明
- 为什么在循环的Javascript中包含变量声明
- for 循环中必需的变量声明
- JavaScript 中的变量声明
- 在 Javascript 变量声明中使用逗号
- 你能在变量声明中添加条件吗?
- JavaScript 全局变量声明
- 节点.js变量声明和作用域
- 具有多个逗号分隔值的变量声明是什么意思(例如 var a = b,c,d;)
- 移动图像 ..JavaScript 将变量声明为字符串
- 让 javascript 将(默认情况下)未声明的变量声明到当前本地范围(基于首次使用)而不是全局范围
- 循环中的变量声明