ruby-on-rails - Rails 5.2 使用 Axios 请求返回 406
问题描述
我在 Rails 5.2 中有一个 Rails API,在 Vuejs 中有一个前端,使用 Axios 请求 API。当我在路线上向邮递员提出要求时
我得到了预期的 JSON 响应。
但是当我向 Axios 请求时:
import axios from 'axios'
export default {
getAll () {
return axios.get('http://localhost:3000/foo', {
headers: { 'Content-Type': 'application/json' }
})
}
}
我从服务器得到了这个响应:
CleanwalksController#index 缺少此请求格式和变体的模板。request.formats: ["text/html"] request.variant: []
我有以下 config/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
当我尝试直接访问http://localhost:3000/foo时遇到了同样的问题。
这是我的控制器:
class FooController < ApplicationController
def index
@foo = foo.all
end
end
解决方案
我认为您的问题来自您的观点,您是否有一个名为 index.html.erb 的文件。否则,您可以定义多重响应格式如下:
class FooController < ApplicationController
def index
@foo = foo.all
respond_to do |format|
format.html { render :index }
format.json { render json: @foo, status: 200 }
end
end
end
推荐阅读
- python - Ubuntu 20.04“名称解析暂时失败” - 最近重新安装
- c++ - 在 C++ 中通过引用传递向量数组
- oracle-apex - Oracle APEX 中的图表行为
- node.js - 我无法为 SSR nextjs 生产创建管道
- javascript - jsp页面中输入类型文本的Javascript模式(正则表达式)
- python - 找到绘图改变斜率的点
- c# - 根据运行时配置更改 Xamarin.Forms 中的 MainPage
- ruby-on-rails - Rails 一直在寻找不存在的宝石
- java - 处理传递字符串变量时出现 NullPointerException
- javascript - 下次调用该函数时退出 Java Script 中的循环