У нас есть старый SharePoint 2010
сервер, с которого мы хотим запрашивать данные в сети. Я уже знаю, что не могу запрашивать данные с других серверов из-за CORS
, но на самом деле, насколько я понимаю, есть возможность разрешать такие запросы. Поэтому мне нужно изменить заголовки HTTP-ответов серверов, не так ли?
На самом деле у меня есть эта настройка, но она на самом деле не работает.
Сервер - SharePoint 2010 - IIS:
Я установил Access-Control-Allow-Origin
для имени моего ноутбука (grolne-nb090). В приложении javascript
определен следующий запрос:
onButtonClickHandler(event) {
event.preventDefault();
fetch('https://my.sharepointserver.com/sites/IT/_layouts/ArchiveSearch/ajax.aspx?requestType=test', {
method: 'GET',
mode: 'cors',
headers: {
'Access-Control-Allow-Origin': 'http://grolne-nb090:3000',
'Access-Control-Allow-Methods': 'GET, POST, PUT, PATCH, POST, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type,Authorization,Accept',
'Content-Type': 'application/json', //'text/plain', //
'Accept': 'application/json'
},
credentials: 'include'
})
.then((response) => {
console.log('fetch data', response);
return response.json();
})
.then((data) => {
console.log('data',data);
})
.catch((error) => {
console.error('Error on fetch request:', error);
});
}
Текущее сообщение об ошибке:
Доступ к выборке в 'https://my.sharepointserver.com/sites/IT/_layouts/ArchiveSearch/ajax.aspx?requestType=test 'from origin' http://grolne-nb090: 3000 'было заблокировано политикой CORS: Ответ на предполётный запрос не проходит проверку контроля доступа: не имеет статуса HTTP ok.
Если изменить mode
на no-cors
, я получу ответ opaque
.
Как правильно настроить сервер / приложение, чтобы я мог получить доступ к этим данным? Какие заголовки HTTP-ответа мне нужно установить на стороне сервера и как должен выглядеть запрос javascript
? Только одна мысль, должен ли запрашивающий URL-адрес также использовать HTTPS? Может ли это быть проблемой? Заранее большое спасибо за любую помощь!
ОБНОВЛЕНИЕ
Я много гуглил, и кажется, что запрос к серверу SharePoint требует аутентификации, которую предварительно Рейс не обеспечивает. Таким образом, ответ от SharePoint, кажется, 401 Unauthorized
для предполетного полета, и это приводит к сбою всего запроса. Сейчас я ищу, как я могу отключить аутентификацию для одной страницы SharePoint ... (или, если это возможно)