我能够成功地打电话给邮递员: /mfp/api/az/v1/token和 /mfpadmin/management-apis/2.0/runtimes/mfp/applications
我正在获取从/mfp/api/az/v1/token接收的承载令牌,并将其添加到/mfp/applications的授权标头中。
我收到了来自两者的200个响应,并从每个API中获取了预期的信息。
然后,我选择从POSTMAN为这些工作API调用中的每一个复制ajax代码:
var getBasic = {
"async": true,
"crossDomain": true,
"url": "https://..../mfp/api/az/v1/token",
"method": "POST",
"headers": {
"authorization": "Basic YXBpYzptZnBhcGlj",
"grant_type": "client_credentials",
"cache-control": "no-cache",
"postman-token": "05a672e5-6141-fd6f-82e2-b282d68dce35",
"content-type": "application/x-www-form-urlencoded"
},
"data": {
"grant_type": "client_credentials",
"scope": "settings.read"
}
}
$.ajax(getBasic).done(function (response) {
console.log(response);
var accessToken = response.access_token;
console.log(accessToken);
var settings = {
"async": true,
"crossDomain": true,
"url": "https://....:8445/mfpadmin/management-apis/2.0/runtimes/mfp/applications",
"method": "GET",
"headers": {
"authorization": "Bearer " + accessToken,
"cache-control": "no-cache"
}
}
console.log(settings);
$.ajax(settings).done(function (response) {
console.log("response: " + response.totalListSize);
});
});
然而,当我在我的WebUI中运行此命令时,我从/令牌得到了200个响应,但从我的/mfp/应用程序得到了401个(未经授权的)响应
为什么这在postman中有效,但在Web UI(Chrome)中无效?
您正在使用的mfpadmin服务及其endpoint(应用程序)不需要您尝试获取的访问令牌。它需要控制台的用户名和密码。因此,当您使用承载访问令牌时,它会因401未经授权而失败,因为这不是服务器允许访问应用程序endpoint所期望的。
我做了以下工作:
>
安装了
Express
和Request
节点包以创建各种代理。这是必需的,因为您不能简单地从浏览器向服务器发出AJAX请求(您会从浏览器收到与跨源请求相关的错误):
npm init
npm install --save express
npm install --save request
创建了代理。js(请注意,此代码特定于mfpadmin):
var express = require('express');
var http = require('http');
var request = require('request');
var app = express();
var server = http.createServer(app);
var mfpServer = "http://localhost:9080";
var port = 9081;
server.listen(port);
app.use('/', express.static(__dirname + '/'));
console.log('::: server.js ::: Listening on port ' + port);
// Reverse proxy, pipes the requests to/from MobileFirst Server
app.use('/mfpadmin/*', function(req, res) {
var url = mfpServer + req.originalUrl;
console.log('::: server.js ::: Passing request to URL: ' + url);
req.pipe(request[req.method.toLowerCase()](url)).pipe(res);
});
在HTML文件中引用一个实现。js文件和jQuery:
<html>
<head>
<script src="/jquery-3.1.1.min.js"></script>
<script src="/main.js"></script>
</head>
<body>
</body>
</html>
总的来说。js文件:
$.ajax({
"crossDomain": true,
"url": "http://localhost:9081/mfpadmin/management-apis/2.0/runtimes/mfp/applications",
"method": "GET",
"headers": {
"authorization": "Basic YWRtaW46YWRtaW4=",
"Access-Control-Allow-Origin": "*",
"cache-control": "no-cache"
}
}).done(function(response) {
console.log(response);
});
Basic YWRtaW46YWRtaW4=
是Basic Auth
的表示形式,用户名admin
和密码admin
。
作为响应,我收到了以下JSON。
项目
数组包含当前在MobileFirst Server中注册的应用程序。
关于redash,我有一个问题。这是请求。在上,它工作得很好。查询示例: 但在axios上,它抛出: 网络错误 并在控制台上写: 访问XMLHttpRequest at
问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt
所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。
列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。
“技术人员”之前的简报对改装并不陌生,但我遇到了这种奇怪的行为,我很难理解和修复。我有两个web服务,在Postman和iOS中都能正常工作,但只有一个在改装中工作,而另一个不工作, 为我辩护,我可以说我得到了(未经授权的)响应,这意味着我能够点击服务器并得到API开发者辩护的结果,他说它在邮递员和其他设备中工作,所以不是服务问题 如果有改装专家告诉我,为了得到这个错误,我背后可能在做什么改装?
我一直在使用声纳3.2 同样的配置,当我升级到SonarQube 4.4时 声纳项目属性: 请帮助整理这些例外 问候, KP