在最新的 beta 2 版本中,我在获取跨域 POST 请求以访问 Api 控制器时遇到了很多麻烦。
Chrome(和其他浏览器)吐槽:
OPTIONS http://api.hybridwebapp.com/api/values 400 (Bad Request)
POST http://api.hybridwebapp.com/api/values 404 (Not Found)
它可能与此问题有关,但我已经应用了该解决方法和其他几个修复程序,例如此处的 web.config 添加
我已经为此苦恼了一段时间,所以我创建了一个解决方案来准确地重现该问题。
加载 Web 应用程序将有 2 个按钮,一个用于 GET,一个用于 POST,响应将显示在按钮旁边。GET 工作。无法让 POST 成功返回。
我可以从 Fiddler 那里得到原因的提示,但这没有任何意义,因为如果您查看响应,它确实在 Access-Controll-Allow-Origin 标头中包含域:
解决方案中有一个名为“ConfigurationScreenshots”的文件夹,其中包含一些 IIS 配置(网站绑定)和项目属性配置的屏幕截图,以便尽可能轻松地帮助我 :)
编辑:不要忘记将此条目添加到主机文件(%SystemRoot%\system32\drivers\etc):
127.0.0.1 hybridwebapp.com api.hybridwebapp.com
**状态:** 似乎某些浏览器(例如 Chrome)允许我继续 POST,而不管 OPTIONS 响应中的错误消息如何(而其他浏览器(例如 Firefox)则不允许)。但我认为这还没有解决。
查看它具有的 OPTIONS 请求的 Fidler 屏幕截图
访问控制允许来源:http ://hybridwebapp.com
然而错误:
来源http://hybridwebapp.com是不允许的
这是完全矛盾的,就好像它忽略了标题一样。