Запросы 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";
}
}
}