首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rails3中,在响应AJAX请求时返回状态404和错误消息

在Rails3中,在响应AJAX请求时返回状态404和错误消息
EN

Stack Overflow用户
提问于 2013-06-12 05:39:39
回答 3查看 4.1K关注 0票数 2

我正在尝试使用Rails3.2进行x-editable工作(以允许内联表单编辑)

当我通过AJAX从浏览器接收post时,我需要能够验证表单输入并返回响应。

如果成功了,我只需要:

代码语言:javascript
复制
render :nothing => true

这个可以正常工作。

如果不成功,根据他们的文档,我需要发回这个PHP代码片段的等价物:

代码语言:javascript
复制
header('HTTP 400 Bad Request', true, 400);
echo "This field is required!";

我不知道如何在Rails中做到这一点。

如果我尝试一个简单的render :status => 400,那么我的终端输出如下所示:

渲染文本模板(0.0ms)在34ms内完成200 OK (视图: 1.3ms | ActiveRecord: 1.5ms)

我找不到任何有关如何将400错误与实际消息组合在一起的信息

我该怎么做呢?

EN

回答 3

Stack Overflow用户

发布于 2013-06-12 05:45:50

试试这个:

代码语言:javascript
复制
render text: "This field is required!", status: :bad_request
票数 3
EN

Stack Overflow用户

发布于 2013-06-12 06:14:47

你想要的是:

代码语言:javascript
复制
head :no_content, :status => :bad_request

这清楚地表明您只生成HTTP标头

票数 3
EN

Stack Overflow用户

发布于 2014-11-05 22:39:44

该PHP示例不包括“此字段是必需的!”在响应中,它被打印出来。

您只需要使用状态代码为400 Bad Request的HTTP头进行响应,如下所示:

代码语言:javascript
复制
header('HTTP 400 Bad Request', true, 400);

在Rails中,您可以使用以下代码:

代码语言:javascript
复制
head :bad_request
# or
head 400

或者这个,但它对读者来说不太明确,你只生成了头部:

代码语言:javascript
复制
render nothing: true, status: :bad_request
# or
render nothing: true, status: 400

如果您确实希望在响应中包含包含文本的正文(因此不仅仅是标题):

代码语言:javascript
复制
render text: "This field is required!", status: :bad_request
# or
render text: "This field is required!", status: 400
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17054306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档