Javascript 未处理的拒绝错误:StatusCodeError:401(未经授权:由于凭据无效,访问被拒绝)
此页面显示纯空html/body标记中的JSON。例如:Javascript 未处理的拒绝错误:StatusCodeError:401(未经授权:由于凭据无效,访问被拒绝),javascript,http,authentication,request,request-promise,Javascript,Http,Authentication,Request,Request Promise,此页面显示纯空html/body标记中的JSON。例如: <html> <body> **JSON DATA *** </body> </html> 我试着改变周围的一切。比如添加标题,或者将json:true,或者将sendInstant更改为true。什么都不管用。我不明白什么,或者我做错了什么 以下是显示终端中错误的图像: 谢谢据我了解,问题是:登录后可以成功显示URL页面,但程序无法直接获取URL本身 此问题的原因是:r
<html>
<body>
**JSON DATA ***
</body>
</html>
我试着改变周围的一切。比如添加标题,或者将json:true,或者将sendInstant更改为true。什么都不管用。我不明白什么,或者我做错了什么
以下是显示终端中错误的图像:
谢谢据我了解,问题是:登录后可以成功显示URL页面,但程序无法直接获取URL本身 此问题的原因是:
request promise
(继承自模块request
)的auth
选项通过在HTTP请求()中添加授权
头来工作。这被调用,许多服务器可能不支持。不幸的是,在当前的网络世界中,基本访问身份验证不再流行(它不安全),而且很可能emodal.com
不支持它。实际上,我在www.emodal.com
中找到了一个名为ASP.NET\u SessionId
的cookie,它表明该站点正在使用SessionId cookie对用户进行身份验证
为了解决这个问题,我认为程序需要在成功登录后登录并保存SessionId cookie。然后,通过在HTTP请求头中添加SessionId cookie来获取URL资源。据我所知,问题是:登录后可以成功显示URL页面,但程序无法直接获取URL本身 此问题的原因是:
request promise
(继承自模块request
)的auth
选项通过在HTTP请求()中添加授权
头来工作。这被调用,许多服务器可能不支持。不幸的是,在当前的网络世界中,基本访问身份验证不再流行(它不安全),而且很可能emodal.com
不支持它。实际上,我在www.emodal.com
中找到了一个名为ASP.NET\u SessionId
的cookie,它表明该站点正在使用SessionId cookie对用户进行身份验证
为了解决这个问题,我认为程序需要在成功登录后登录并保存SessionId cookie。然后,通过在HTTP请求头中添加SessionId cookie来获取URL资源。
这是一张显示终端中错误的图片
-复制/粘贴文本会更快更容易使用这是一张显示终端中错误的图片
-复制/粘贴文本会更快更容易使用
import dotenv = require('dotenv');
dotenv.config({ path: '../logins.env' });
import rp = require('request-promise');
const jsonUrl = `http://availability.emodal.com/ImportAvailability/GetContainerInfoList?sgrdModel=%7B%22searchtext%22:%22%22,%22page%22:1,%22pageSize%22:280,%22sortBy%22:%221%22,%22sortDirection%22:%22asc%22,%22sortColumns%22:%22%22%7D`;
const authOpts = {
uri: jsonUrl,
auth: {
user: process.env.EMODAL_id,
pass: process.env.EMODAL_pw,
sendImmediately: false
},
method: 'get'
}
rp(authOpts)
.then(resp => {
console.log(resp);
}).catch(err => { throw Error(err)});