Javascript IE和chrome没有';t在发送XMLHTTPRequest之前执行js代码,直到收到该请求的响应为止

Javascript IE和chrome没有';t在发送XMLHTTPRequest之前执行js代码,直到收到该请求的响应为止,javascript,asp.net-mvc,internet-explorer,google-chrome,xmlhttprequest,Javascript,Asp.net Mvc,Internet Explorer,Google Chrome,Xmlhttprequest,我正在使用asp.net-MVC构建一个web应用程序,发现使用XmlHttpRequest向服务器发送请求时出现了一些奇怪的行为。例如,如果我运行以下js代码: alert("send request!"); var xhr = new new XMLHttpRequest(); xhr.open("get", requestURL, false); xhr.onreadystatechange = ResponseHandler; xhr.send(some message); 如果服务器

我正在使用asp.net-MVC构建一个web应用程序,发现使用XmlHttpRequest向服务器发送请求时出现了一些奇怪的行为。例如,如果我运行以下js代码:

alert("send request!");
var xhr = new new XMLHttpRequest();
xhr.open("get", requestURL, false);
xhr.onreadystatechange = ResponseHandler;
xhr.send(some message);
如果服务器处理请求需要很长时间,或者如果我在操作函数中手动设置了断点,则在服务器完成处理请求之前,我不会看到警报对话框。这只发生在Firefox中,而在IE、Safari、Opera和Chrome中。这真的很奇怪,我想知道问题的原因是什么


谢谢

通过将第三行更改为:

xhr.open("get", requestURL, true);

您正在将
false
作为第三个参数传递给
.open()
函数,这意味着您需要一个同步调用。谢谢,但为什么firefox中不会出现此问题?不同的浏览器实现
警报()
的方式不同。