【发布时间】:2014-05-03 10:44:33
【问题描述】:
我正在尝试构建一个角度水疗中心,但在使用 cors 时遇到了问题。我的 api 在 rails 上运行。
GET 请求正常工作,但 POST、PUT、DELETE 不起作用。消息是:
XMLHttpRequest cannot load http://localhost:3001/api/resources. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8888' is therefore not allowed access.
在 Rails 中,我有一个带有以下代码的 before_filter:
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS'
headers['Access-Control-Request-Method'] = '*'
headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization'
在路线中:
match '/*path' => 'sessions#home', :via => :options
在角度配置中我设置了这个:
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
对此有什么想法吗?我在 Mac 上,本地主机顺便说一句
编辑
此消息显示在 chrome 网络选项卡的标题中:
CAUTION: provisional headers are shown
【问题讨论】:
-
您是否尝试过不止一种浏览器?不管你信不信,我在 chrome 中遇到过这个问题,但它在 Firefox 中运行良好。
-
您可以发布请求/响应详细信息吗?
-
添加了我认为重要的唯一内容。见帖子
标签: ruby-on-rails angularjs cors