0

简而言之"http://anovamoeda.oinvestidordesucesso.com/IS/nmREPORT.asp?NM=2",当通过 Excel 运行时,我试图从 Script Labs 环境内部的 url 获取 html 内容。一个简单的fetch(url)返回这个神秘的错误信息:

TypeError {}
 description: "Failed to fetch"
 message: "Failed to fetch"
 number: -2147418113
▶__proto__: TypeError
▶constructor: function TypeError()
 message: ""
 name: "TypeError"
▶toString: function toString()
▶__proto__: Error

我可以弄清楚这是一个网络错误(承诺返回被拒绝),这看起来很奇怪,因为我也尝试从 API 获取 JSON 并且它工作正常(例如,https://api.binance.com/sapi/v1/system/status对于那些愿意尝试的人)。首先,我认为这可能是由于我的 url 包含 html 内容,而不是 JSON,但它不像它无法解析信息,它甚至没有获取信息来尝试。我试图向 fetch 调用添加一个参数传递{headers: {'Content-Type': 'text/html'}},但这没有用。(另外,我是 JS 的菜鸟。)

但是我可以从 Google Scripts 中获取信息,使用他们自己的 UrlFetchApp API 并简单地调用该 fetch 方法。

很高兴有任何帮助,因为我找不到任何帮助。

4

2 回答 2

0

您没有显示足够的代码,所以我不确定您在做什么。该 URL 不返回 json:它是一个 html 文档。如果您想要 html 文档的文本,请尝试以下操作:

var response = await fetch("http://anovamoeda.oinvestidordesucesso.com/IS/nmREPORT.asp?NM=2");
if (response.ok) {
    var content = await response.text();
    // parse the content
    console.log(content);
}
else {
   // handle error response
}
于 2021-04-29T20:45:46.130 回答
0

我相信我知道发生了什么。根据这个埋在 GitHub 深处的帖子,Script Lab 只支持 https。我们生活的这个悲伤的世界。

于 2021-04-30T02:25:13.530 回答