【发布时间】:2020-01-15 21:28:14
【问题描述】:
我正在使用 ReactJS 前端构建一个简单的 Sinatra 后端。当我尝试从 React 应用程序向我的 Sinatra 项目中的路由发出请求时,它给了我 CORS 错误。我尝试像这样在我的项目中启用 CORS,但它不起作用:
require 'sinatra'
require 'sinatra/cross_origin'
require 'json'
configure do
enable :cross_origin
end
set :allow_origin, :any
set :allow_methods, [:get, :post, :options]
set :allow_credentials, true
set :max_age, "1728000"
set :expose_headers, ['Content-Type']
get '/' do
'Hello!'
end
post '/download' do
content_type :json
return {res: params['songs']}.to_json
end
所以当我从 React 发出这样的请求时:
axios.post('http://localhost:4567/download', {}, {
songs: this.state.songs
}).then(res => {
console.log(res.data)
})
我应该在我的 Sinatra/React 项目中进行哪些更改才能完成这项工作,以便我可以从 React 向 Sinatra 发出请求?
【问题讨论】:
-
尝试添加
before { response.headers['Access-Control-Allow-Origin'] = '*' } -
@maxpleaner 仍然无法正常工作
-
您确定这是 CORS 错误吗?我在您的问题中看不到实际错误
-
@maxpleaner 抱歉,我将在控制台中截取错误。让我更新问题
-
@maxpleaner 我更新了问题