- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们用 [EnableCors('*', '*', '*')]
attribute 装饰了一个公共(public) Web API Controller 。 .
我的期望是,对于该 Web API Controller 类中包含的端点,CORS 是完全允许的,并且不受任何方式的限制。然而,我看到了对 Chrome 预检 OPTIONS
的响应请求仅包含以下 CORS 相关 header :
Access-Control-Allow-Headers: access-control-allow-headers,access-control-allow-methods,access-control-allow-origin
Access-Control-Allow-Origin: *
因此,实际的 POST
我从 Chrome 中发送的请求(通过 $.ajax
)失败,并在控制台中记录以下消息:
Access to XMLHttpRequest at 'https://...' from origin 'https://...' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我是否误解了 EnableCors
的含义属性,或者我应该寻找任何可能覆盖我在 Controller 类的所述属性中设置的全局设置?
编辑:根据到目前为止的答案,以下是我尝试过的更多内容:
*
如果凭证随调用一起发送,则无法使用。 Another MDN page更明确的是有一个 withCredentials
不应设置为 true
的标志。现在,我设置了withCredentials
在 xhrFields
配置对象的属性为 $.ajax
至false
,无论如何,我的请求不会发送任何 cookie 或 auth header 。然而,所描述的错误不断发生。HttpConfiguration.EnableCors
方法被调用。最佳答案
您需要做两件事才能使该属性起作用 source documentation here
在 App_Start/WebApiConfig.cs 中。基本上,您在这里配置应用程序以启用 cors 配置。在任何路由配置之前完成这一点很重要。
使用 System.Web.Http;
namespace WebService
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// This is the key line
config.EnableCors();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
然后
使用System.Net.Http;使用 System.Web.Http;使用 System.Web.Http.Cors;
namespace WebService.Controllers
{
[EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
public class TestController : ApiController
{
// Controller methods not shown...
}
}
关于c# - 为什么 [EnableCors ("*"、 "*"、 "*")] 不允许所有请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59305365/
我们用 [EnableCors('*', '*', '*')] attribute 装饰了一个公共(public) Web API Controller 。 . 我的期望是,对于该 Web API C
我有一个 MVC 网络 API,带有名为 GetNames 的 GET 方法。 当我想从另一个网站的 AJAX 调用 myapi.com/controller/GetNames 时,出现 Access
我关注了 aspnet启用 cors 的站点教程,但我无法使其正常工作。 在 WebApiConfig 上注册方法: public static void Register(HttpConfigu
在一个项目上启用了 CORS,试图在另一个现有项目上启用它,但是在编译过程中找不到“EnableCors”方法: public static class WebApiConfig { publ
有谁知道如何将 enableCors 放入 vb.net 上的 Controller 中。我正在学习一个 pluralsight 类(class),并尝试了一个没有运气的代码翻译器。我的尝试如下。
我正在使用 C# API 并从我的前端发出 GET 请求,为此我需要在我的 API 中启用 cors,但我似乎做不到! 这是一个 .NET Core 3 API,我已经尝试遵循 this教程,我也尝试
问题: 出于某种原因,启用 CORS 时,Access-Control-Allow-Origin响应中不包含 header 。 错误: Access to XMLHttpRequest at 'htt
我正在为我的 Web API 调用使用 Microsofts EnableCors 属性。客户端行为如我所料运行:例如当 Origin 无效时,调用返回失败。 但是,当我在方法中放置一个断点并从无效来
我安装了 webapi2 并且程序集的版本安装成功并显示以下消息: Adding 'Microsoft.AspNet.WebApi.Client 5.2.3' to AT.Web. Successfu
我想在 Asp.net Web Api 中的一个特定操作上启用 CORS。以下是我正在努力做到的: [Route("api/mycontroller/myaction")] [HttpPost] [E
我是一名优秀的程序员,十分优秀!