【问题标题】:Unclear why Fetch for UPS XML API failing不清楚为什么 Fetch for UPS XML API 失败
【发布时间】: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


【解决方案1】:

当 fetch 不起作用时我遇到了问题,但 remoteFetchAsync 起作用了。 您只能在脚本中使用 remoteFetchAsync,不能在自动化中使用,但至少您会知道问题出在哪里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多