我正在处理同时调用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
答案 0 :(得分:0)
您正在发出异步请求,这意味着您只启动请求,并且该方法立即返回,而不知道请求是否有效。
您必须使用响应到达时调用的回调方法,或者您必须改为发出同步请求。