Запросы JSOM запрещены в приложениях в анонимном режиме при первой загрузке страницы (перезагрузка решает это)

У меня есть часть приложения на странице сайта публикации. В этом приложении вызовы JSOM работают хорошо, когда пользователь проходит аутентификацию. В анонимном режиме он будет работать только после перезагрузки страницы, содержащей часть приложения. Во время первой загрузки я получу эту ошибку:

Не удалось загрузить ресурс: сервер ответил со статусом 403 (ЗАПРЕЩЕНО) http://app-4e3210d8daa297.abc.com/MyList/_vti_bin/client.svc/ProcessQuery

Обработчики ошибок для вызовов JSOM возвращают "неопределенное" сообщение об ошибке.

Но если я перезагружаю страницу или саму часть приложения (с кодом javascript), то это работает.

Почему вызовы JSOM запрещены только при первой загрузке страницы? Как мне это решить?

1 ответ

Это быстрое решение для временного решения этой проблемы, но я уверен, что есть лучший способ.

    //error handler of the jsom call that fails
    function onErrorLoadList(data, error, errorMessage) {
        console.log("Could not complete cross-domain call: " + errorMessage);
        // in anonymous mode, for the first load of the app
        // the JSOM calls fail and errorMessage is undefined
        if (typeof errorMessage == 'undefined') {
            // we will reload the app by adding reload=true in the url
            // if it fails again, we won't do it to avoid a loop
            if (!location.href.match(/reload=true/)) {
                console.log("The app reloads.");
                location.href = location.href + "&reload=true";
            }
        }
    }
Другие вопросы по тегам