如何制作REST GET请求(带身份验证)并在javascript中解析结果?

时间:2014-01-29 08:49:53

标签: javascript xml marklogic

由于我无法控制的情况,Javascript是我唯一可用的语言选项。我是初学者,甚至不确定我是否以“推荐”方式接近问题。

简单地说,客户已经在线设置了MarkLogicDB服务器并且给了我只读权限。我可以使用 HTTP GET协议查询服务器,以返回必须解析的XML文档。我已经能够创建一个curl命令来返回我需要的数据(例如下面的代码);

curl --anyauth --user USERNAME:PASSWORD \
  -X GET \
  http://test.com:8020/v1/documents?uri=/path/to/file.xml

以上内容返回请求的XML文件。有人可以告诉我如何将上述内容转换为javascript代码吗?另外,我将如何解析数据?假设我想从某个元素或属性中获取所有信息。如何实现这一目标?

对于我来说,这对于Java/.NET来说是微不足道的,但是在阅读了大量关于Javascript的在线教程之后,我的脑袋在旋转。每个教程都讨论Web浏览器,但我在服务器环境(parse.com CloudCode)上这样做。没有涉及任何UI或HTML。对于调试,我只是阅读使用console.log()创建的日志。

1 个答案:

答案 0 :(得分:1)

https://parse.com/docs/cloud_code_guide#networking似乎很清楚,就此而言。

Parse.Cloud.httpRequest({
  url: 'http://test.com:8020/v1/documents',
  params: {
    uri : '/path/to/file.xml'
  },
  success: function(httpResponse) {
    console.log(httpResponse.text);
  },
  error: function(httpResponse) {
    console.error('Request failed with response code ' + httpResponse.status);
  }
});

但您还需要身份验证。 Parse.Cloud.httpRequest文档不包含任何示例。如果您有该供应商的支持,询问供应商有关摘要式身份验证的信息

如果您遇到困难,可以尝试将userpassword添加到httpRequest参数中,看看会发生什么。如果此堆栈的开发人员遵循XMLHttpRequest约定,则可能会有效。

供应商和现有功能的支持失败,您必须自己在JavaScript中实现身份验证。这通过生成进入请求标头的字符串来工作。这些资源应该有所帮助:

基本身份验证更容易实现,但出于安全原因,我建议使用摘要。如果您的HTTPServer不支持,请尝试更改配置。