0

我需要使用 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 的开发者,他建议我也需要发送预检请求

4

1 回答 1

0

如果您的服务代码是用 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

于 2016-04-11T10:58:38.813 回答