【发布时间】:2020-02-22 22:13:17
【问题描述】:
我正在使用仅限 api 的应用程序,并且在发布请求时不断收到错误。发布请求来自前端应用程序,我也在用邮递员测试样本数据。
这是我每次尝试提交请求时都会遇到的错误
HTTP Origin header (http://localhost:3000) didn't match request.base_url (http://localhost:4000)
Completed 422 Unprocessable Entity in 1ms (ActiveRecord: 0.0ms | Allocations: 238)
我设置了 rack-cors gem 并且原点指向 localhost:3000。
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins 'http://localhost:3000'
resource '*',
headers: :any,
credentials: true,
methods: [:get, :post, :put, :patch, :delete, :options, :head]
end
end
【问题讨论】:
-
测试服务器运行在4000端口,避免与开发服务器冲突。为两个端口添加条目或使用基于
Rails.env的条件。 -
将您的
origins 'http://localhost:3000'更改为来源http://localhost:4000 -
@MUHAMMADSOBAN 太好了,现在他破坏了开发服务器......
-
当然,我说的是本地环境,而对于dev则要使用不同的origin
标签: ruby-on-rails ruby cors