我在 Rails 应用程序中设置了 CORS,但仍然收到错误

Eli*_* K. 2 ruby-on-rails cors vue.js

我在 gemfile 中有它gem 'rack-cors', require: 'rack/cors'。我做了捆绑安装。

我还在 config/initializers/cors.rb 中进行了设置

Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins '*'

    resource '*',
      headers: :any,
      methods: [:get, :post, :put, :patch, :delete, :options, :head]
   end
 end
Run Code Online (Sandbox Code Playgroud)

之后我确实重新启动了服务器。

这是我得到的错误:

Access to XMLHttpRequest at 'localhost:3000/articles' from origin 'http://localhost:8080' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Run Code Online (Sandbox Code Playgroud)

这是我的仓库Portfolio_App

Vas*_*fed 6

在您的vue_portfolio/src/components/Articles.vue情况下axios.get('localhost:3000/articles'),如果没有协议,它不是绝对的,也不是相对的,浏览器认为您正在尝试3000通过协议连接到主机localhost并且不允许。

将其更改为

axios.get('http://localhost:3000/articles') 
Run Code Online (Sandbox Code Playgroud)

或者

axios.get('/articles') 
Run Code Online (Sandbox Code Playgroud)

(后者是针对同源的,这种情况下不需要CORS)