【发布时间】:2017-02-10 20:14:54
【问题描述】:
我在 webApi 上启用了 CORS
var corsAttr = new EnableCorsAttribute("http://localhost:14054", "*", "*") {SupportsCredentials = true};
config.EnableCors(corsAttr);
但是当我从 FF 进行 Web 项目时,我仍然收到错误
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:28821/Authenticate. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).1(unknown)
这就是我在 chrome 中得到的
XMLHttpRequest cannot load http://localhost:28821/Authenticate. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:14054' is therefore not allowed access.
当在 Edge 或 IE 中做同样的事情时它会起作用。我做了一堆阅读,但不知道如何停止飞行前停止,但我想我在某处读到 chrome & FF 也包括端口号。
无论哪种方式,我都很生气和恼火,谁能告诉我我做错了什么。
编辑 另一件事是这是我已经发布的公共端点,并且能够使用移动应用程序来使用 api 就好了。这是在我开始开发 Web 应用程序之前。
编辑
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, DELETE, PATCH" />
<add name="Access-Control-Allow-Headers" value="authorization,accept,content-type,origin,cache-control,x-requested-with" />
<add name="Access-Control-Expose-Headers" value="x-sf3-api-version" />
</customHeaders>
</httpProtocol>
这是web配置,上面是startup.register()中的enablecors()
它不是 OAuth 或身份验证逻辑,因为它适用于邮递员并适用于移动设备
【问题讨论】:
-
我也遇到过这种问题,你在创建webapi项目时选择了什么认证?
-
请告诉我们您正在使用的 apicontroller 和您的 WebApiConfig。
-
现在我正在尝试进行身份验证,所以直接进入我的誓言逻辑。
-
也许这与您实现身份验证的方式有关
-
同意 bsoulier,您需要向我们展示您的 myoath 逻辑,以及您的 webapiconfig 和 apicontroller,以便我们能够提供帮助。
标签: javascript google-chrome asp.net-web-api cors asp.net-web-api2