我正在从 Oracle BI 调用 CodeIgniter 项目中的 xml 流作为 xml 文件数据源。通常,当我手动通过 url 调用时它可以正常工作,即使它在 CodeIgniter 之外的同一服务器和不同的服务器中也可以正常工作。示例如下,我检查了与授权相关的所有内容(例如 IP 限制),但我找不到与该问题相关的任何解决方案。
不工作;
http://test.myintranet/report/index.php/ws?param=130
工作正常就是这样;
http://test.kolkhoba.net/ws.php?param=130
http://test.myintranet/report/test/index.php?param=130
配置设置;
config->routes.php
$route['ws'] = 'WS_Controller/index';
config->config.php
$config['permitted_uri_chars'] = 'a-z 0-9~%\.:_\-&=';
WS_Controller/index(Xml 内容);
<?php
class WS_Controller extends MY_Controller {
public function index() {
$domain = $_SERVER['HTTP_HOST'];
$path = $_SERVER['SCRIPT_NAME'];
$queryString = $_SERVER['QUERY_STRING'];
$url = $domain . $path . "?" . $queryString;
mail("mail@myintranet", $_SERVER['REMOTE_ADDR'] ." called ws xml service at " . date("h:i:sa"), $url);
$param = $_GET['param'];
header("Content-type: text/xml");
$inner = "";
$inner .= "<report>";
$inner .= sprintf("<id>%s</id>", $param);
$inner .= "</report>";
echo sprintf("<?xml version=\"1.0\"?><root>%s</root>", $inner);
}
}
?>
Xml流;
<root>
<report>
<id>130</id>
</report>
</root>