【发布时间】:2019-11-06 10:25:18
【问题描述】:
在设置 Blazor 客户端 API 客户端以发出请求时,我遇到了一些 CORS 问题。我想我找到了解决方案,但解决方案也引发了错误。
主要错误是: “WASM:System.Net.Http.HttpRequestException:TypeError:无法在 'Window' 上执行 'fetch':提供的值 '2' 不是 RequestCredentials 类型的有效枚举值。”
代码是
string link = API_RequestLoginTokenEndPoint;
Http.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample");
Http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Authorization", "basic:testuser:testpassword");
var requestMessage = new HttpRequestMessage(new HttpMethod("GET"), link);
requestMessage.Properties[WebAssemblyHttpMessageHandler.FetchArgs] = new
{
credentials = FetchCredentialsOption.Include
};
var response = await Http.SendAsync(requestMessage);
var responseStatusCode = response.StatusCode;
var responseBody = await response.Content.ReadAsStringAsync();
output = responseBody + " " + responseStatusCode;
我还尝试将请求消息更改为: var requestMessage = new HttpRequestMessage(HttpMethod.Get, link);
如果这是错误所指的 ENUM。在 Startup ConfigureServices 我尝试添加: WebAssemblyHttpMessageHandler.DefaultCredentials = FetchCredentialsOption.Include;
我正在使用 Blazor 预览版 9。我还尝试在我的 PHP 脚本中添加一些 CORS 代码到应该接受所有来源的 API 路由上,但是我发布的最后一个问题被告知使用这种方法来修复 CORS 问题,这现在给了我一个新的错误。
我是做错了什么还是我错过了什么?浏览器中的错误通常指向带有异步请求的行: var response = await Http.SendAsync(requestMessage);
【问题讨论】:
标签: c# cors client-side blazor webassembly