首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么Rails要为JSON PUT请求返回"head :no_content“?

为什么Rails要为JSON PUT请求返回"head :no_content“?
EN

Stack Overflow用户
提问于 2013-02-06 04:18:30
回答 1查看 26.5K关注 0票数 23

在我跑完之后

rails generate scaffold User

Rails 3.2.11中生成的用于更新用户的控制器函数如下所示:

代码语言:javascript
复制
def update
  @user = User.find(params[:id])

  respond_to do |format|
    if @user.update_attributes(params[:user])
      format.html { redirect_to @user, notice: 'User was successfully updated.' }
      format.json { head :no_content }
    else
      format.html { render action: "edit" }
      format.json { render json: @user.errors, status: :unprocessable_entity }
    end
  end
end

我很好奇的一行代码是,如果JSON update请求成功,则返回head :no_content。我做了一些谷歌搜索,因为我猜测这是某种RESTful属性,以不返回更新后的对象,但我找不到任何声称是这种情况的东西。

为什么这是默认的,而不是在更新后返回User对象的JSON表示?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-28 20:00:06

问得好,很明显,其目的是返回一个空主体的HTTP200状态码,参见this discussion。也许是出于简短或安全的目的。head :no_content似乎创建了一个包含空主体的HTTP response 200 (成功),返回以下响应头:

代码语言:javascript
复制
Status Code:200 OK

另请参见this related question

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14716151

复制
相关文章

相似问题

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