【发布时间】:2014-02-01 20:55:27
【问题描述】:
我正在本地虚拟主机 (http://foo.app:8000) 上运行 Angular 应用程序。它正在使用 $http.post 向另一个本地 VirtualHost (http://bar.app:8000) 发出请求。
$http.post('http://bar.app:8000/mobile/reply', reply, {withCredentials: true});
在 Chrome 开发者工具的 Network 选项卡中,我当然看到了 OPTIONS 请求,并且响应包括标题:
Access-Control-Allow-Origin: http://foo.app:8000
但是,POST 请求被取消并出现以下错误:
请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问 Origin 'http://foo.app:8000'。
有人经历过吗? Access-Control-Allow-Origin 标头非常明显地包含在 OPTIONS 请求的响应中,因此我无法终生弄清楚为什么 POST 正在执行标头丢失。
Access-Control-Allow-Credentials 也设置为true。
【问题讨论】:
-
您在 OPTIONS 响应中看到 Access-Control-Allow-Methods 标头吗?
-
确实如此。允许所有方法。