我有一个奇怪的案例。我有一个RoR应用程序,提供REST API,我从Java应用程序连接到它。
我在本地开发RoR,并在Heroku环境中部署它。
无论我使用什么方法(从Java APP、Mozilla REST客户端等)发送应该由API控制器中的create操作处理的POST HTTP请求。在本地主机上,一切正常。在Heroku生产环境中,POST请求被视为普通的GET请求。
这是我的资源路由:
然而,在Heroku上发送相同的请求会被视为GET请求:
任何想法?当然,两个仓库都是同步的。已经检查过几次了。
这真的很奇怪...也许是某种Heroku缓存魔法?
我在本地开发RoR,并在Heroku环境中部署它。
无论我使用什么方法(从Java APP、Mozilla REST客户端等)发送应该由API控制器中的create操作处理的POST HTTP请求。在本地主机上,一切正常。在Heroku生产环境中,POST请求被视为普通的GET请求。
这是我的资源路由:
api_v1_items GET /api/v1/items(.:format) api/v1/items#index {:format=>:json}
POST /api/v1/items(.:format) api/v1/items#create {:format=>:json}
api_v1_item GET /api/v1/items/:id(.:format) api/v1/items#show {:format=>:json}
PATCH /api/v1/items/:id(.:format) api/v1/items#update {:format=>:json}
PUT /api/v1/items/:id(.:format) api/v1/items#update {:format=>:json}
DELETE /api/v1/items/:id(.:format) api/v1/items#destroy {:format=>:json}
我正在尝试向/api/v1/items
发出POST请求,传递所有必要的参数。
在本地主机上,响应是正确的:
Started POST "/api/v1/items?token=l4XOHrhDApPqTp1u4TxBjQ" for 127.0.0.1 at 2014-05-15 22:11:49 +0200
Processing by Api::V1::ItemsController#create as JSON
Parameters: {"height"=>10.0, "item_name"=>"Super item", "width"=>20.0, etc...
然而,在Heroku上发送相同的请求会被视为GET请求:
2014-05-15T20:27:58.137541+00:00 app[web.1]: Started GET "/api/v1/items?token=iEdDkDLiDUlWi0mDbr6XYw" for 89.74.57.51 at 2014-05-15 20:27:58 +0000
2014-05-15T20:27:58.223620+00:00 app[web.1]: Processing by Api::V1::ItemsController#index as JSON
任何想法?当然,两个仓库都是同步的。已经检查过几次了。
这真的很奇怪...也许是某种Heroku缓存魔法?
myapp.heroku.com
而不是myapp.herokuapp.com
-- 后者解决了问题。但是从myapp.heroku.com
进行GET请求是可以的。 - Benny