微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

部署到heroku后无法访问/解析外部网页

如何解决部署到heroku后无法访问/解析外部网页

我的应用程序在本地主机上按预期工作,但是当部署到 heroku 时,我正在解析的外部页面返回访问被拒绝错误

这是heroku上外部页面的响应(我无法在本地设置中复制它):

2021-01-26T23:16:37.537084+00:00 app[web.1]: [
2021-01-26T23:16:37.537127+00:00 app[web.1]:   '<HTML><HEAD>',2021-01-26T23:16:37.537128+00:00 app[web.1]:   '<TITLE>Access Denied</TITLE>',2021-01-26T23:16:37.537129+00:00 app[web.1]:   '</HEAD><BODY>',2021-01-26T23:16:37.537129+00:00 app[web.1]:   '<H1>Access Denied</H1>',2021-01-26T23:16:37.537129+00:00 app[web.1]:   ' ',2021-01-26T23:16:37.537133+00:00 app[web.1]:   `You don't have permission to access "http&#58;&#47;&#47;www&#46;pcso&#46;gov&#46;ph&#47;SearchLottoResult&#46;aspx" on this server.<P>`,2021-01-26T23:16:37.537140+00:00 app[web.1]:   'Reference&#32;&#35;18&#46;89112017&#46;1611702997&#46;802e1a8',2021-01-26T23:16:37.537141+00:00 app[web.1]:   '</BODY>',2021-01-26T23:16:37.537141+00:00 app[web.1]:   '</HTML>',2021-01-26T23:16:37.537141+00:00 app[web.1]:   ''
2021-01-26T23:16:37.537142+00:00 app[web.1]: ]

我正在使用回调方法解析页面

async function file_get_contents(uri,callback) {
    let res = await fetch(uri,{ credentials: 'include' }),value = await res.text(); 
    return callback ? callback(value) : value;
}

我正在使用这样的方法

const pages = (url,callback) => {
    file_get_contents(url)
    .then(res => {
        let page = res.replace(/\t+/gm,'').split('\n')
        console.log(page)
    // other codes

URL 设置如下:

app.get('/pages',async (req,res) => {
    await pages(`https://www.pcso.gov.ph/SearchLottoResult.aspx`,(err,data) => {
        if (err) {
            return response.send({
                err
            })
        }
        res.send(data)
    })
})

有没有办法在heroku上进一步调试这个问题或在本地主机上复制这个问题?我正在使用 heroku local web 运行该应用程序,但仍然无法重现该问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。