如何使用Rails在HTML和JSON中进行响应?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Rails在HTML和JSON中进行响应?相关的知识,希望对你有一定的参考价值。

我有

(家庭控制器)

    def default

        users = Users.all

        respond_to do |format|

            format.html 
            format.json { render json: users}

        end

     end

(视图)

axios({
        method: 'get',
        url: '/home',
        headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }
        }).then(response => console.log(response))

带有json标头,但我得到了

ActionController::UnknownFormat (LoginController#default is missing a template for this request format and variant.

request.formats: ["application/json"]
request.variant: []):

带有http错误406(不可接受)

谢谢您的帮助:)

编辑:

我发现了问题,实际上我的Rails接受了我的请求作为'/ homehome',但我不知道为什么?我在axios url参数中将'/ home'更改为'',现在可以使用,但我仍然不明白发生了什么?????>

我的网络控制台中也有此消息

A cookie associated with a cross-site resource at http://youtube.com/ was set 
without the `SameSite` attribute. A future release of Chrome will only deliver
cookies with cross-site requests if they are set with `SameSite=None` and
`Secure`. You can review cookies in developer tools under
Application>Storage>Cookies and see more details at
https://www.chromestatus.com/feature/5088147346030592 and
https://www.chromestatus.com/feature/5633521622188032.

    

我有(本地控制器)def默认用户= Users.all response_do | format | format.html format.json {渲染json:用户}结束...

答案

您是否曾经尝试过axios的此配置responseType: 'json', // default,有关详细信息,可以在axios文档中阅读。

以上是关于如何使用Rails在HTML和JSON中进行响应?的主要内容,如果未能解决你的问题,请参考以下文章

Mechanize Rails - Web Scraping - 服务器使用JSON进行响应 - 如何将URL解析为下载CSV

Rails 4 - 只响应 JSON 而不是 HTML

Rails - 格式和渲染 - 它们是如何工作的?

如何使用 Jbuilder & Rails 生成自定义 json 响应

rails :: 如何评估 js 响应

Rails 3:在 Rails 中使用 JSON 响应 REST-ful 操作的正确方法是啥?