-2

我在使用 Uno Platform 的 WebAssembly 上遇到了这些错误。

CORS 策略已阻止从源“ http://localhost:49917 ”获取“ https://localhost:44318/api/search/bebek/TR ”的访问权限:没有“Access-Control-Allow-Origin”标头存在于请求的资源上。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

我从 API 服务获得了一些作为 JSON 文件的数据响应。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 的真正问题是什么?我该如何解决?谢谢。

4

2 回答 2

0

这是来自 Javascript fetchAPI 的安全限制,您调用的端点需要提供CORS 标头才能正常工作。

如果您控制 API,则需要使用框架中的功能来启用 CORS,如果不这样做,则需要让端点的维护者启用 CORS。

要测试 CORS 是否真的是问题所在,您可以使用CORS Anywhere代理查询。

于 2020-05-25T16:22:10.090 回答
-2

它通过 Microsoft CORS 包解决。谢谢。

于 2020-05-25T16:23:38.867 回答