我需要使用C#调用不同服务器的API。 我正在使用以下方法
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "tolen");
var result = await client.GetStringAsync("url");
return JsonConvert.DeserializeObject(result);
}
但它总是给
403 禁止
我询问了这个 API 的开发者,他建议我还需要发送 预检请求。
如果您的服务代码是用 C# 编写的,那么您可以在 api 方法部分启用跨域访问,如下所示
[EnableCors(origins: "*", headers: "*", methods: "*")]
public string Get()
{
上面的代码为所有外部域启用了 cors,但您可以通过这种方式仅指定您自己的域
[EnableCors(origins: "http://yourdomain.com", headers: "*", methods: "*")]
有用的两个链接https://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api https://msdn.microsoft.com/en-us/magazine/dn532203.aspx