首页 > 解决方案 > 无法从 Web 服务中检索 XML 列表

问题描述

我有一台运行 OTRS 5 的服务器,我想检索 XML 格式的列表。我正在运行一个应该显示列表的 JavaScript 代码,但我得到了一个错误。

我的本地服务器是https://labcentos3/otrs/mds.pl?Action=ServiceList.

我认为它是在服务器端运行的 Perl 脚本,然后以 XML 格式显示列表。

如果我浏览本地链接,这就是我得到的:它给了我想要的列表

如果我浏览本地链接,这就是我得到的,它给了我想要的列表

我编写了 HTML 和 JavaScript 来尝试稍后处理检索到的数据,但我无法克服错误。

HTML

<html>
    <head>
        <title>XML read</title>
        <script src="reader.js" type="text/javascript"></script>
    </head>
    <body>
        <h1>XML File</h1><br/>
    </body>
</html>       

阅读器.js

var user = "bla bla bla";
var pass = "bla bla bla"

var getXMLFile = function(path, callback) {
    var request = new XMLHttpRequest();
    request.open("POST", path);
    request.setRequestHeader("Content-Type", "text/plain");
    //request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    request.setRequestHeader('Authorization', 'Basic ' + btoa(user + ":" + pass));
    request.onreadystatechange = function() {
        if(request.readyState === 4 && request.status === 200) {
            callback(request.responseXML);
        }    
    };
    request.send();
};

getXMLFile("https://labcentos3/otrs/mds.pl?Action=ServiceList", function(xml) {
   console.log(xml); 
});

我在 Chrome 控制台中遇到的错误是:

XMLHttpRequest 无法加载https://labcentos3/otrs/mds.pl?Action=ServiceList。该请求被重定向到“ https://labcentos3/otrs/index.pl ”,这对于需要预检的跨域请求是不允许的。

标签: javascripthtmlxmlotrs

解决方案


推荐阅读