Запрос выборки 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.