Ошибка CORS на Uno WebAssembly с ASP .. NET Core REST API Service - PullRequest
0 голосов
/ 25 мая 2020

Я получил эту ошибку на WebAssembly с Uno Platform.

Доступ к выборке в 'https://localhost: 44318 / api / search / bebek / TR ' from origin ' http://localhost: 49917 'заблокировано политикой CORS: на запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-Origin '. Если непрозрачный ответ соответствует вашим потребностям, установите режим запроса на 'no-cors', чтобы получить ресурс с отключенным CORS.

Я получил некоторые ответы с данными в виде файла JSON от службы API. Приложение UWP делает это без ошибок:

 //_savedSearchList = await _dbService.SearchAsync(_keyword, _sentLanguageArgument);  // Normal database connection for UWP.

                //_savedSearchList = await _dbService.SearchAsync(_keyword, _sentLanguageArgument);  // Normal database connection for UWP.

                //Get search list for webservice.
                var link_search = $"https://localhost:44318/api/search/{_keyword.ToLower()}/{_sentLanguageArgument}";



                using (HttpClient client = new HttpClient())
                {
                    HttpResponseMessage response = await client.GetAsync(link_search);
                    Debug.WriteLine($"Http Status Code for Connection: {response.StatusCode}");
                    if (response.IsSuccessStatusCode)
                    {
                        var jsonString = await response.Content.ReadAsStringAsync();
                        _savedSearchList = JsonConvert.DeserializeObject<List<SearchResultCapsule>>(jsonString).OrderBy(t => t.IssueNumber);



                        if (_savedSearchList.Count() != 0)
                        {

                            ResultList.ItemsSource = _savedSearchList;
                            NoResult_Grid.Visibility = Visibility.Collapsed;
                        }
                    }
                }

В чем реальная проблема WebAssembly? И как это исправить? Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 мая 2020

Решено с помощью пакета Microsoft CORS. Спасибо.

0 голосов
/ 25 мая 2020

Это ограничение безопасности из Javascript fetch API, где вызываемая конечная точка должна предоставить заголовки CORS для правильной работы.

Если вы управляете API, вам нужно будет использовать функции вашей платформы, чтобы включить CORS, а если вы этого не сделаете, вам нужно будет попросить разработчиков конечной точки включить CORS.

Чтобы проверить, действительно ли CORS проблема, вы можете использовать CORS Anywhere для прокси-запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...