如何处理无法打开流错误,帮助(javascript,ajax)

时间:2010-08-02 06:50:14

标签: javascript ajax xmlhttprequest

我正在处理同时调用3个(或更多)相同jscript函数的页面。我正在使用一个经过测试的函数,它可以处理多个并发的ajax请求(在网络上找到它,因为我现在面临这个新问题,所以它有效)。

html就是这个

<div  id="1"> <script> ajax2(); </script> </div> 
<div  id="2"> <script> ajax2(); </script> </div> 
<div  id="3"> <script> ajax2(); </script> </div> 

如您所见,html请求同时调用3个相同的函数。

ajax2()jscript函数有此行请求打开文件

xhrObj.open("GET", "../testa.php",true);

问题在于,由于同时请求太多,有时文件无法打开,并且程序提供了

Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 

Fatal error: Unknown: Failed opening required 'C:/xampp/htdocs/test/testa.php'

如何处理此错误并替换打开的文件请求以便打开另一个文件(即testb.php)?

如果testa.php不可用,我尝试使用testb.php和testc.php作为testa.php的替换方法来处理替换。

var x = xhrObj.open("GET", "../testa.php",true);
if (!x) { var y = xhrObj.open("GET", "../testb.php",true);
          if (!y) { xhrObj.open("GET", "../testc.php",true);}
}

但代码不起作用。语法错误,因为它给出了相同的错误,并且警告显示testa.php始终是不可用的文件。

检查xhrobj.open是否正常的正确语法是什么,如果没有,打开另一个文件?

TIA

1 个答案:

答案 0 :(得分:0)

您正在发出异步请求,这意味着您只启动请求,并且该方法立即返回,而不知道请求是否有效。

您必须使用响应到达时调用的回调方法,或者您必须改为发出同步请求。