2011-12-20 55 views
0

这里是简化的代码,我打电话给JS里面的epr_lib.php。AJAX - XMLHttpRequest打开php文件htdocs外

epr_lib.php位于cgi-bin文件夹中,这意味着在htdocs之外。

在cgi-bin文件夹中我有这些文件:epr_lib.php; newrequest.php。

我的问题是:如何在ajaxRequest.open中调用htdocs之外的文件?或者这是不可能的?

var ajaxRequest; 
ajaxRequest = new XMLHttpRequest(); 
ajaxRequest.onreadystatechange = function(){ 
    if(ajaxRequest.readyState == 4){ 
     suppl_addrss.innerHTML = ajaxRequest.responseText; 
    } 
} 
ajaxRequest.open("GET", "newrequest.php?task=getsuppladdrss", true); 
ajaxRequest.send(null); 

谢谢。

回答

1

不,这是不可能的。 Ajax请求会为该文件发出http请求,因此您必须在htdocs中提供该请求。

您可以创建加载cgi-bin文件的代理脚本。只需创建一个包含cgi-bin文件的文件:

// myproxy.php 
// you'll have to get the querystring and use it as a variable in newrequest.php 
$vars = $_GET("task"); 
include('../cgi-bin/newrequest.php');