我正在尝试通过使用XMLHttpRequest
JavaScript 中的对象和 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"
。
当我在我的互联网浏览器中尝试这个请求时,它会返回一些数据。所以我真的不知道问题出在哪里。
如果有人可以帮助我...