如何解决Wasm应用程序Blazor的.NET标准DLL中的HttpClient SendAsync发布失败TypeError:无法获取
我们已经建立了一个.netstandard 2.0 DLL,它可以对第三方的api进行所有数据访问。我们将此DLL用于WPF和Xamarin应用程序。最近,我试图创建一个Uno Platform应用程序和Blazor应用程序,以确保api能够正常工作,并且该服务已为我们的应用程序启用了CORS。
我们已对这些调用进行了打包,以简化客户端应用程序。我对DLL进行了4次调用。所有呼叫都有一个HttpClient进行呼叫。
- GetConfigurations-HttpClient.GetAsync
- OpenSession-HttpClient.PostAsync
- 请求-HttpClient.SendAsync设置方法= HttpMethod.Post并通过令牌传递授权标头
- CloseSession-HttpClient.PostAsync
如果我为其他应用程序运行此示例,则我有一个示例调用可用于所有4个调用。当我打开Fiddler并从非Web客户端运行此程序时,我会看到:
- GetConfigurations-GET
- OpenSession-POST
- 请求-POST
- CloseSession-POST
从网络客户端运行时,我看到:
- GetConfigurations-GET
- OpenSession-POST
- 请求-选项**
- CloseSession-POST
Image of Fiddler on Request that fails
错误和堆栈跟踪:
play(<args>){}
为什么请求调用失败?由于OpenSession有效且Request失败,因此存在Request与OpenSession的比较方法。
TypeError: Failed to fetch
at System.Net.Http.WebAssemblyHttpHandler.doFetch(System.Threading.Tasks.taskCompletionSource`1[TResult] tcs,System.Net.Http.HttpRequestMessage request,System.Threading.CancellationToken cancellationToken) <0x30c8628 + 0x00a30> in <filename unknown>:0
at System.Net.Http.WebAssemblyHttpHandler.SendAsync(System.Net.Http.HttpRequestMessage request,System.Threading.CancellationToken cancellationToken) <0x309c6f8 + 0x00174> in <filename unkonwn>:0
at System.Net.Http.WebAssemblyHttpClient.FinishSendAsyncBuffered(System.Threading.Tasks.Task`1[TResult] sendTask,System.Threading.CancellationTokenSource cts,System.Boolean disposeCts) <0x32c4fd0 + 0x00278> in <filename unknown>:0
at MyDll.Request(System.String query) [0x0011c] in c:\...
at BlazorApp1.Pages.FetchData.OnInitializedAsync() [0x0031a] in c:\...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。