Запрос выборки Post не работает в пользовательских функциях Office Addin [Ошибка типа: сбой сетевого запроса]

Я столкнулся с этой ошибкой в ​​надстройке Excel для пользовательских функций, где я пытаюсь вызвать внешний сервис внутри пользовательской функции. Он отлично работает для запроса GET, например:

function stockPrice(ticker) {
var url = "https://api.iextrading.com/1.0/stock/" + ticker + "/price";
return fetch(url)
    .then(function(response) {
        return response.text();
    })
    .then(function(text) {
        return parseFloat(text);
    });
}

CustomFunctionMappings.STOCKPRICE = stockPrice;

Взято из https://docs.microsoft.com/en-us/office/dev/add-ins/excel/excel-tutorial-custom-functions

Но дает исключение для запроса POST, как это:

function stockPrice(ticker) {
var url = "https://westcentralus.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment";
return fetch(url, {
        method: 'POST',
        headers: {
            'Ocp-Apim-Subscription-Key': key,
            'Content-Type': 'application/json',
            'Accept': 'application/json'
        },
        body: JSON.stringify(body))
    .then(function(response) {
        return response.json();
    })
    .then(function(response) {
        return response.somevalue;
    })
    .catch(e => {
        console.error("Caught exception");
        return JSON.stringify(e);
     });
}

Выше приведен лишь пример, чтобы понять, как я называю свою службу. Я пробовал это с 2-3 различными сервисами, и я понял, что после запуска fetch код переходит к блоку catch, а значение ошибки, которое возвращается в excel, является пустым объектом '{}'. Поскольку нет никаких способов отладки пользовательских функций в Windows, и поскольку нет конкретного описания ошибки, я не могу выяснить проблему. Я также добавил свой служебный домен в список доменов приложений в файле манифеста, но все равно не произвел никакого эффекта.

1 ответ

Я не уверен, что конкретный API принимает запросы POST, так что вы можете столкнуться с этим.

Отладка в Windows все еще продолжается, но вы можете использовать Excel онлайн и F12tools для отладки.

Если вы работаете в Windows, вы можете использовать console.log вместе с ведением журнала времени выполнения: https://docs.microsoft.com/en-us/office/dev/add-ins/excel/custom-functions-best-practices

Надеюсь, что это поможет, и мы обновим это, когда отладка будет готова для пользовательских функций на рабочем столе Windows.

Другие вопросы по тегам