Недавно я загрузил свой проект ASp.NET CORE React с Redux (и KendoUI React) на свою платформу хостинга Azure, и теперь я не могу получить доступ к данным, полученным из API. Я посмотрел на консоль и увидел сообщение об ошибке:
Доступ к выборке по адресу 'https://login.microsoftonline.com/xxx-xxx-xxx-xxx-xxx/oauth2/authorize?client_id=xxx-xxx-xxx-xxx-xxx&redirect_uri=https%3A%2F%2Fmywebsite.azurewebsites.net%2Fsignin-oidc&response_type=id_token&scope=openid%20profile&response_mode=form_post&nonce=xxx.xxxstate=xxx-xxx-xxx-xxx-xxxxxx&x-client-SKU=ID_NET&x-client-ver=2.1.4.0' (перенаправлено с 'https://mywebsite.azurewebsites.net/api/MyData/GetMyData?page=1&pageSize=20') из источника 'https://mywebsite.azurewebsites.net" заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок "Access-Control-Allow-Origin". Если непрозрачный ответ соответствует вашим потребностям, установите для режима запроса значение «no-cors», чтобы получить ресурс с отключенным CORS.
Я исследовал проблему, выполнив поиск в сообщении об ошибке, я нашел несколько сообщений, но ничего конкретного о том, что именно делать в реагирующем приложении, которое является передовым, а также безопасным, нет.
Я добавил в выборку заголовок Access-Control-Allow-Origin: *
, но это не сработало. Другой метод, который я нашел, заключался в использовании прокси, но пример поддерживал только локальную среду разработки.
Вот моя выборка, где вы можете видеть, что я добавил Access-Control-Allow-Origin
в заголовки:
fetchData(dataState) {
const queryStr = `${toDataSourceRequestString(dataState)}`;
const hasGroups = dataState.group && dataState.group.length;
const base_url = 'api/MyData/GetMyData';
const init = { method: 'GET', accept: 'application/json', headers: "Access-Control-Allow-Origin: *" };
fetch(`${base_url}?${queryStr}`, init)
.then(response => response.json())
.then(({ Data, total }) => {
this.setState({
result: hasGroups ? translateDataSourceResultGroups(Data) : Data,
total,
dataState
});
}).catch(function (error) {
console.log('Error: \n', error);
});
};
Добавление заголовка ничего не изменило, и ошибка сохраняется. Я хочу убедиться, что я делаю это правильно, может ли кто-нибудь помочь мне исправить эту ошибку?