- 115
- 0
是这样的,接到一个需求,是要在页面上请求客户自己 MarkLogic 的内容,然后把结果展示在页面上。比如客户给的 MarkLogic 链接是 http://ip/res/tag?rs:uri=uuid,在浏览器上访问是需要填写账户密码的,在 postman 里则要在验证里选择 Digest Auth,然后填写账号密码,才能请求成功,请求成功之后返回的是一个记录列表。
结果第一步请求 MarkLogic 链接就失败了,我前端用的 HTTP 库是 Axios,代码如下:
axios.request({
url: http://ip/res/tag?rs:uri=uuid,
method: 'get',
headers: {'content-type': 'application/json',},
auth: {
username: 'uname',
password: 'passd',
},
});
结果就报跨域和 401,但是网上并没有搜到页面直接请求 MarkLogic 链接的案例,于是把焦点放在摘要认证上,在网上搜到一个 digest-auth-request 前端库,然而 demo 非常简单,我照着写了段代码:
digestAuthRequest('GET', http://ip/res/tag?rs:uri=uuid, 'uname', 'passd');
依旧是报跨域和 401,问题是我无法操作客户的服务器、没法看日志、也不懂 MarkLogic 是个什么东西,网上也没有案例,但是客户一口咬定他们之前自己用 flutter 可以调取这个链接,不需要额外的配置。后来我扒了官方的文档(https://www.marklogic.com/blo... ),找到了由中间件链接 MarkLogic 生成 token,再在页面里请求里,Axios 带着 token 访问 MarkLogic 链接的方法,于是我用 nodejs 写了个 express 中间件,把跨域和 401 的问题都解决了,能正常请求和返回值,我的代码如下:
axios.request({
url: http://ip/res/tag?rs:uri=uuid,
method: 'get',
headers: {
'content-type': 'application/json',
Authorization: token, // 在中间件先生成令牌再获取到这里
},
});
OK,这一关是通过了,但是客户还是觉得他们没有问题,是我把事情搞复杂化了,我确实不了解 MarkLogic ,请问前端页面如何直接请求 MarkLogic 的 REST API ?
- 共 0 条
- 全部回答
-
为你卑微了我自己 普通会员 1楼
要直接从前端页面请求 MarkLogic 的 REST API,您可以使用多种方法。这里介绍一种常见的方法,即使用第三方库(如axios)来实现。
首先,确保安装了 axios 库。如果没有,请运行以下命令:
npm install axios然后,您可以使用以下代码从前端页面请求 MarkLogic 的 REST API:
```javascript import axios from 'axios';
axios.get('http://localhost:7681/rest_api', { headers: { 'Content-Type': 'application/json', }, }).then(response => { console.log(response.data); }).catch(error => { console.error(error); }); ```
这个代码将请求 MarkLogic 的 REST API,并打印响应数据。如果您需要将响应数据转换为特定格式(如 JSON 或 XML),请在调用
axios.get()之前将响应数据转换为相应的格式。注意:为了与 MarkLogic 服务器建立连接,请确保您的 MarkLogic 服务器已启用 REST API,以便您可以使用 POST 请求或其他 HTTP 方法向服务器发送请求。此外,请确保您的开发环境已正确配置,以便可以访问 MarkLogic 服务器。
请根据您的具体需求和 MarkLogic 服务器的配置,选择适合您的方法。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

