我有3个文件:fileNum1.php
,fileNum2.php
和fileNum3.php
。
fileNum1.php
文件调用fileNum2.php
文件:
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","fileNum2.php",false);
xmlhttp.send();
和fileNum2.php
拨打fileNum3.php
:
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","fileNum3.php",false);
xmlhttp.send();
对fileNum3.php
的调用无效!
有什么问题?
(可能是因为我在现有的new XMLHttpRequest
内启动了XMLHttpRequest
吗?)
答案 0 :(得分:0)
JavaScript是客户端代码。这意味着需要浏览器来解释和执行JavaScript代码。
如果您通过浏览器访问fileNum1.php
,则会执行对fileNum2.php
的调用,因为fileNum1.php
的JavaScript已被解释。
从fileNum2.php
到fileNum3.php
的呼叫将不会执行,因为它不会返回到浏览器。第三个文件中的JavaScript将作为输出返回给服务器,服务器正在发出请求,JavaScript将永远不会返回到浏览器。
如果您希望fileNum3.php
的操作返回fileNum1.php
,则必须在fileNum3.php
上调用fileNum2.php
时捕获数据,然后返回响应到fileNum1.php
。
或者,您可以正确的方式执行此操作,并说fileNum1.php
调用fileNum2.php
并且一切正常,然后致电fileNum3.php
。
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","fileNum2.php",false);
xmlhttp.send();
if(xmlhttp.responseText !== "undefined"){
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp2=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp2.open("GET","fileNum3.php",false);
xmlhttp2.send();
}