[英]Get json response without specifying '.json in URL'
我正在使用Rails + AngularJS應用程序。 為了訪問我的應用程序的json響應,我必須在我的有角$ resource url中訪問/something.json
,而不僅僅是/something
有辦法解決嗎?
路線
upvote_post_comment PUT /posts/:post_id/comments/:id/upvote(.:format) comments#upvote
post_comments POST /posts/:post_id/comments(.:format) comments#create
post_comment GET /posts/:post_id/comments/:id(.:format) comments#show
upvote_post PUT /posts/:id/upvote(.:format) posts#upvote
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
post GET /posts/:id(.:format) posts#show
GET / home#index
PostsController
class PostsController < ApplicationController
def index
@posts = Post.all
respond_to do |format|
format.json { render json: @posts }
end
end
end
角服務提供商
angular.module('flapperNews')
.factory('posts', ['$resource', function($resource) {
return $resource('/posts.json/:id', {id: "@id"})
}]);
嘗試將.json
添加到URL的末尾
angular.module('flapperNews')
.factory('posts', ['$resource', function($resource) {
return $resource('/posts/' + id + '.json')
}]);
在你的控制你說的respond_do
給只有當格式的JSON響應(.:format) in the routes
被指定為JSON。
您可以修改控制器PostsController以使用json no- matter-格式響應。
class PostsController < ApplicationController
def index
@posts = Post.all
render json: @posts
end
end
注意 :在此之后,URL后面的格式將無關緊要(無論是.json,.xml還是什么)。 控制器的動作總是返回json。
在routes.rb中設置默認格式
resources :posts, defaults: { format: :json }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.