Непонятно, почему не удается выполнить выборку XML-API для ИБП

#javascript #fetch-api #airtable #usps

#язык JavaScript #fetch-api #воздушный стол #usps

Вопрос:

Я работаю над автоматизацией airtable, которая отправляет запрос на проверку адреса в API USPS. По какой-то причине, когда я пытаюсь вытащить его тайм-аут. Я подтвердил, что URL-адрес, на котором я тестирую, работает просто отлично и дает ответ, но, что бы я ни пытался, я не могу заставить это работать.

AFAIK, использование выборки-единственный способ, которым я могу получить доступ к XML-ответу в автоматизациях airtable. Я открыт для всего, что дает мне данные (я знаю, что, поскольку это XML-ответ, я не могу проанализировать его сразу).

Вот пример URL-адреса (с выделенным моим идентификатором), который не работает:

 let geo2 = await fetch( 'http://secure.shippingapis.com/ShippingAPI.dll?API=Verifyamp;XML=lt;AddressValidateRequest USERID="00000000"gt;lt;Addressgt;lt;Address1gt;nulllt;/Address1gt;lt;Address2gt;7400 Quebec Pl NWlt;/Address2gt;lt;Citygt;Brooklynlt;/Citygt;lt;Stategt;NYlt;/Stategt;lt;Zip5gt;20202lt;/Zip5gt;lt;Zip4gt;lt;/Zip4gt;lt;/Addressgt;lt;/AddressValidateRequestgt;').then(response =gt; response.text())  

Я не могу найти никаких подобных ошибок в Интернете и нашел код в других местах (не в airtable), который сработал. Есть идеи, почему это не работает, и есть ли альтернативы, которые работают в airtable? Насколько я могу судить, я не могу использовать XMLHttpRequest.

Комментарии:

1. Многие API-интерфейсы не поддерживают CORS, чтобы вы могли использовать fetch() их из браузера? Вы подтвердили, что используемый вами API включен?

2. @charlietfl о, хороший вопрос: Я предположил, что это потому, что я видел, как люди размещают поисковые запросы сценариев Google apps, используя его, и я предполагаю, что для этого также требуется включение CORS, но на самом деле не уверен, как это проверить?

3. У вас есть какая-либо информация о том, какую ошибку на самом деле выдает fetch? Возможно, это уже говорит вам о CORS? Обычно это довольно ясно дает понять, если вам это не разрешено. (Также XMLHttpRequest в основном то же самое и должно быть доступно в вашем браузере как его часть window , поэтому я не понимаю, почему вы не могли бы это использовать. Не то, чтобы вы должны, fetch должен охватывать все это и многое другое)

4. Сценарии приложений Google не запускаются в браузере, они запускаются на сервере и, следовательно, не ограничены CORS

5. ааа! я вижу Тая!! тогда это действительно может быть моей проблемой, из-за некоторых поисков в Google это кажется таковым.

Ответ №1:

У меня были проблемы, когда fetch не работал, но remoteFetchAsync работал. Вы можете использовать remoteFetchAsync только в скрипте, а не в автоматизации, но, по крайней мере, вы будете знать, в чем проблема.