0

我正在尝试通过使用XMLHttpRequestJavaScript 中的对象和 XQuery 脚本来创建表单。

例如,用户填写一个输入文本表单,他通过按下提交按钮发送,然后调用一个 JS 函数。

该函数必须将 XHR 请求发送到 XQuery 脚本。该脚本返回一个 XML 格式的文档,由 JS 函数解析。但是,当我想从 XQuery 查询的结果中收集数据时,不会收集任何数据。

我不知道问题出在哪里。我尝试使用 Firefox 工具对其进行调试,并且我的 HTTP 查询状态良好(200)。

请求方法:

GET

Status Code:

HTTP/1.1 200 OK

从它的内容类型来看,我的响应标题似乎很好......

内容类型:应用程序/xml;字符集=UTF-8

如果你愿意,我可以为你提供我的 JS 和 XQuery 脚本:

xhr.open("GET", "http://localhost:8984/rest/my_database/?run=myscript.xq&$var=value", true);

xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
                alert(xhr.responseXML);
        }
};

xhr.send(null);

和我的 XQuery 脚本:

declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare option output:omit-xml-declaration "no";
declare option output:method "xml";

declare variable $var as xs:string external;
<result>
{
for $v in //elements[./element-name[starts-with(text(),$var)]]
return
    $v/element-name
}
</result>

但是当我点击提交按钮时alert(xhr.responseXML);返回我"null"

当我在我的互联网浏览器中尝试这个请求时,它会返回一些数据。所以我真的不知道问题出在哪里。

如果有人可以帮助我...

4

0 回答 0