【问题标题】:CORS Error on Uno WebAssembly with ASP..NET Core REST API Service使用 ASP..NET Core REST API 服务的 Uno WebAssembly 上的 CORS 错误
【发布时间】:2020-09-12 03:56:58
【问题描述】:

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

从 'https://localhost:44318/api/search/bebek/TR' 获取的访问权限 来源“http://localhost:49917”已被 CORS 策略阻止:否 请求中存在“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 的真正问题是什么?我该如何解决?谢谢。

【问题讨论】:

    标签: asp.net-core .net-core uwp xmlhttprequest uno-platform


    【解决方案1】:

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

    如果您控制 API,则需要使用框架中的功能来启用 CORS,否则,您需要请求端点的维护者启用 CORS。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2018-11-09
        • 2019-12-20
        • 2021-10-16
        • 2021-08-04
        • 2019-03-10
        • 2019-01-24
        • 2021-07-27
        • 1970-01-01
        • 2020-03-23
        相关资源
        最近更新 更多