Надстройка Office 365 Word: 403 запрещено при попытке создать документ с помощью офисной библиотеки javascript

Мы пытаемся создать новый документ в Word в Интернете, используя офисную библиотеку javascript. Скрипт содержится в надстройке слова. Документация по методу create находится по адресу https://dev.office.com/reference/add-ins/word/application. Вызов созданного документа с последующим использованием метода open всегда приводит к запрещенной ошибке 403.

HTTP403: FORBIDDEN - The server understood the request, but is refusing to fulfill it.
(XHR)OPTIONS - https://offline.officeapps.live.com/outage.html

Failed to load https://offline.officeapps.live.com/outage.html: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://auc-word-edit.officeapps.live.com' is therefore not allowed access. The response had HTTP status code 403.

Код для открытия документа следующий.

Word.run(function (context) {
        var myNewDoc = context.application.createDocument();
        context.load(myNewDoc);

        return context.sync()
            .then(function () {
                myNewDoc.open();
                context.sync();
            }).catch(function (myError) {
                console.log(e);
            })

    }).catch( errorHandler });

Ошибка возникает при первоначальном вызове context.sync ().

Word Online сохраняет в бизнес-аккаунт Office 365. Создание документов из интерфейса работает.

Почему возвращается эта ошибка?

Обновить

Ошибка возникает только тогда, когда надстройка используется в контексте учетной записи Office 365 Business, поддерживаемой онлайн-сервером sharepoint.

Когда я пытаюсь использовать личную учетную запись OneDrive, создание и открытие документа проходят успешно.


person K Rouse    schedule 13.03.2018    source источник
comment
вручную открыть URL-адрес, который offline.officeapps.live.com/outage.html также дает ошибка недоступности службы. а это не текстовый документ, а просто html? Вы можете показать нам, на каком этапе воспроизводите его и более подробную информацию?   -  person MSFT-Jipyua    schedule 14.03.2018
comment
Я прояснил исходный вопрос и добавил дополнительное обновление.   -  person K Rouse    schedule 14.03.2018
comment
Вы видели, что эта надстройка собирается отобразить диалоговое окно в новом окне при запуске метода Open? и после этого появится новая вдова, чтобы открыть документ. Можете ли вы скопировать мне URL-адрес этой вдовы? и было бы хорошо, если бы вы могли дать короткое видео о воспроизведении, так как я только что попробовал использовать учетную запись O365 и не могу воспроизвести его.   -  person MSFT-Jipyua    schedule 14.03.2018
comment
Также для вашей учетной записи O365 у вас должна быть личная папка для хранения ваших документов (папка - это место, где документ сохраняется, когда вы создаете документ из пользовательского интерфейса). Можете ли вы попробовать просто вызвать API CreateDocument, а не открытый API, а затем проверить, создается ли в этой папке файл?   -  person MSFT-Jipyua    schedule 14.03.2018
comment
Я был неправ. Ошибка происходит в исходном context.sync (). Я обнаружил это после того, как просто вызвал API создания документа, а затем синхронизацию. Появится диалоговое окно. Эта надстройка собирается создать новый документ в папке по умолчанию в текущем облачном репозитории. Когда я нажимаю ОК, в консоли javascript возвращается ошибка. В моей бизнес-учетной записи onedrive не создан документ.   -  person K Rouse    schedule 14.03.2018
comment
Word.run (функция (контекст) {var myNewDoc = context.application.createDocument (); context.load (myNewDoc); return context.sync () .then (function () {myNewDoc.open (); context.sync ( );}). catch (function (myError) {console.log (JSON.stringify (myError));})}); Можете ли вы изменить свой код на приведенный выше и сообщить мне сообщение об ошибке?   -  person MSFT-Jipyua    schedule 14.03.2018
comment
команда stringify возвращает только {}. Если я печатаю сообщение, в нем говорится, что ReferenceError: e не определен. Ввод в chromw дает мне дополнительное сообщение, касающееся «Access-control-allow-origin». Интересно, связано ли это с настройкой сервера sharepoint.   -  person K Rouse    schedule 15.03.2018
comment
обратите внимание, что переменная myError, а не e, измените значение на myError и повторите попытку. сначала мы должны убедиться, что это ошибка createDocument API или ошибка Open API. 403 не является ошибкой API, для обоих API мы не выдаем ошибку 403. Я не уверен, как вы видите ошибку 403?   -  person MSFT-Jipyua    schedule 15.03.2018


Ответы (2)


Я думаю, что то, что вы пытаетесь сделать, достижимо с помощью одной строчки кода, и это работает в сети. пожалуйста, попробуй

 Word.run(async (context) => {
        context.application.createDocument().open();
        context.sync();
    });

person Juan Balmori    schedule 14.03.2018
comment
Я попробовал этот код, но он по-прежнему выдавал ошибку 403, указанную выше. - person K Rouse; 15.03.2018

Кажется, эта проблема решилась сама собой. Теперь я могу создать и открыть документ. Могу только предположить, что это была временная проблема с sharepoint или проблема в библиотеке javascript.

спасибо тем, кто пытался оказать помощь.

person K Rouse    schedule 28.03.2018