onreadystatechange 在 Firefox 中没有被调用
这是我的代码。
我的函数发送 ajax 请求并返回一个值:
function myAjaxCall(){
var myValue=0
var async= false //I have to use synchronized request(otherwise my return value is 0)
xmlhttp.open("GET",URL,async);
xmlhttp.onreadystatechange=function(){
...
myValue = SOMEVALUE;
};
xmlhttp.send();
return myValue
}
我的其他函数将使用 myAjaxCall 函数返回值
function otherFunc(){
var x= myAjaxCall();
}
除了在 Firefox 浏览器上之外,一切都以这种方式完美运行,我知道原因是因为在 Firefox 中,如果我使用同步请求,onreadystatechange
将不会被调用。
然而,就我而言,我必须使用同步ajax请求,否则myAjaxCall()
函数返回的值始终是初始值“var myValue=0
代码>”。
如何摆脱这个火狐问题?
Here are my codes.
my function to send ajax request and return a value:
function myAjaxCall(){
var myValue=0
var async= false //I have to use synchronized request(otherwise my return value is 0)
xmlhttp.open("GET",URL,async);
xmlhttp.onreadystatechange=function(){
...
myValue = SOMEVALUE;
};
xmlhttp.send();
return myValue
}
My other function will use the myAjaxCall function returned value
function otherFunc(){
var x= myAjaxCall();
}
Things are working perfectly in this way except on Firefox browser, I know the reason is because in Firefox, if I use synchronized request, the onreadystatechange
will not be called.
In my case, however, I have to use synchronized ajax request, otherwise myAjaxCall()
function returned value is always the initail value "var myValue=0
".
How to get rid of this firefox problem??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用函数指针而不是内联函数可以避免此问题:
JavaScript 中函数控制作用域,因此:
此外,发送应该在 onReadyStateChange 之前完成
Use a function pointer instead of an inline function to avoid this issue:
Functions control scope in JavaScript, so:
Also, send should be done before onReadyStateChange