【发布时间】:2022-01-10 14:33:49
【问题描述】:
我正在开发一种可向 USPS API 发送地址验证请求的 airtable 自动化。出于某种原因,当我尝试获取它时会超时。我已验证我正在测试的 URL 可以正常工作并提供响应,但无论我尝试什么,我都无法使其正常工作。
AFAIK,使用 Fetch 是我可以在 airtable 自动化中访问 XML 响应的唯一方法。我对任何可以获取数据的东西都持开放态度(我知道,因为它是一个 XML 响应,所以我无法立即解析它。)
这是一个失败的 URL(我的 ID 被标记)示例:
let geo2 = await fetch( 'http://secure.shippingapis.com/ShippingAPI.dll?API=Verify&XML=<AddressValidateRequest%20USERID="00000000"><Address><Address1>null</Address1><Address2>7400%20Quebec Pl NW</Address2><City>Brooklyn</City><State>NY</State><Zip5>20202</Zip5><Zip4></Zip4></Address></AddressValidateRequest>').then(response => response.text())
我在网上找不到任何类似的错误,并且在其他地方(不是 airtable)找到了有效的代码。知道为什么这不起作用,以及是否有替代方法可以在空气表中起作用?据我所知,我不能使用 XMLhttpRequest。
【问题讨论】:
-
许多 API 未启用 CORS,无法让您在浏览器中使用
fetch()?您是否确认您使用的 API 已启用? -
@charlietfl 哦,好问题:我认为这是因为我看到人们使用它发布谷歌应用程序脚本查找,我认为还需要启用 CORS,但实际上不确定如何检查?
-
你有任何关于错误获取实际吐出的信息吗?它可能已经在告诉您有关 CORS 的信息?如果您不允许这样做,通常会很清楚。 (另外
XMLHttpRequest基本上是一样的,应该在你的浏览器中作为window的一部分提供,所以我不明白你为什么不能使用它。不是你应该,fetch 应该涵盖所有这些,并且更多) -
Google 应用脚本不在浏览器中运行,它们在服务器上运行,因此不受 CORS 限制
-
啊!我看到了!那么这可能确实是我的问题,一些谷歌搜索使它看起来如此。
标签: javascript fetch-api airtable usps