Rails响应angular资源.使用html



Rails 4正在响应一个angular资源。get request with HTML,我不知道为什么。

javascript是

$resource("/questions/:id", {id: "@id"}}.get({id: 16});

服务器失败,因为它找不到请求的HTML视图。

Missing template questions/show, application/show with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}.

如果我将浏览器指向/querstions/16.json,它会按预期响应JSON。

请求头中是否缺少某些内容?

如果我看一下报头,请求似乎有正确的请求报头来触发ruby用json响应…

Request URL:http://localhost:3000/questions/16
Request Method:GET
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Host:amazing_earth.dev
Pragma:no-cache
Referer:http://localhost:3000/demo
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36

这似乎是rails很长一段时间的问题,检查这个问题

根据那里的评论,这个问题已经在最新的rails版本中修复了。

如果你不想修改angularjs的头文件,只需修改api路由的默认格式

get 'questions/:id', to: 'questions#show', defaults: { format: 'json' }

相关内容

  • 没有找到相关文章

最新更新