Отправка данных на сервер с помощью надстройки Excel
Проект представляет собой веб-надстройку Excel.
В настоящее время я запускаю надстройку в Visual Studio в режиме отладки и хочу отправить данные на сервер. Данные отправляются через вызов ajax.
Код для публикации данных:
Excel.run(function (context) {
let workbook = context.workbook;
let worksheets = workbook.worksheets;
let Sheet = worksheets.getItem("SheetName");
var tableRange = Sheet.getRange("Data");
tableRange.load("values");
return context.sync().then(function () {
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: 'text',
type: 'POST',
url: 'DocFile/Post',
crossDomain: true,
data: JSON.stringify({
file:tableRange.values
})
,
success: function (r) {
console.log(r);
alert("Successfully saved Home office assumptions for Space");
},
failure: function (r) {
alert(r);
}
});
При запуске надстройки появляется следующее сообщение об ошибке:Сообщение об ошибке
1 ответ
Из этого сообщения об ошибке похоже, что вы отправляете данные на междоменный сервер. в решении Excel JS у нас есть политика одного и того же происхождения, применяемая браузером, не позволяющая сценарию, загруженному из одного домена, получать или управлять свойствами веб-страницы из другого домена. Это означает, что по умолчанию домен запрашиваемого URL-адреса должен совпадать с доменом текущей веб-страницы.
Документ можно найти по адресу https://docs.microsoft.com/en-us/office/dev/add-ins/develop/addressing-same-origin-policy-limitations.
Возможным решением может быть добавление этого нового домена приложения в манифест, вы можете найти документ здесь https://docs.microsoft.com/en-us/office/dev/add-ins/reference/manifest/appdomains