Я разрабатываю надстройку для Excel с использованием JavaScript.
Эта надстройка должна выполнять запросы к API (запросы POST и GET). Я использую AJAX для выполнения этих запросов, но единственный ответ, который я получаю, - это следующая ошибка:
{"readyState":0,"status":0,"statusText":"error"}.
Я знаю, что проблема не имеет ничего общего с внутренностями запросов, так как запросы работают нормальнокогда я использую Postman для их проверки.
Я подозреваю, что проблема связана с междоменным запросом POST. Самая очевидная причина, с которой я столкнулся, касается связи между различными зонами безопасности. Однако обеспечение безопасности API-сервера не изменило ничего, поэтому это не может быть причиной моей проблемы. Следующие заголовки также были добавлены к каждому ответу API, но это также ничего не изменило:
- Access-Control-Allow-Origin: *
- Access-Control-Allow-Методы: GET, POST, OPTIONS
- Access-Control-Allow-Headers: *
- Access-Control-Max-Age: 86400
Я думаю, что могуупустить что-то, связанное с надстройками Office или даже надстройками Excel, в частности, что мешает мне отправлять эти запросы, но я не могу найти больше информации о том, что это может быть. Если кто-нибудь может помочь мне решить эту проблему или знает, в чем может быть причина, пожалуйста, свяжитесь с нами.
Ниже приведен код запроса POST к API, на данный момент я жестко закодировал аргументы, чтобыоблегчить тестирование запроса:
function sendPostRequest(url, headers, data, callback) {
$.ajax({
url: /*the url to the API server*/,
type: 'post',
headers: {
'Authorization': /* the necessary key */,
'Content-Type': 'application/json'
},
dataType: 'json',
crossDomain: true,
data: /* the necessary data */
}).then(
function success(res, textStatus, xhr) {
if (xhr.status >= 200 && xhr.status < 300) {
callback(null, res)
} else {
callback({ statusCode: xhr.status, statusMessage: textStatus, data: res }, null)
}
},
function fail(data, textStatus) {
callback(data, null)
}
);
}
Вызвана функция обратного вызова fail с указанной выше ошибкой.
({"readyState":0,"status":0,"statusText":"error"})
Функция обратного вызова выглядит следующим образом:
function (err, data) {
if (err) {
/* a function displaying JSON.stringify(err) to the user */
} else {
/* a function displaying a success message to the user */
}
}
Заранее спасибо!