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' }