我有一个网页试图使用 d3 向 rails 应用程序发出 json 数据请求。出于某种原因,我不断收到 406 错误("不可接受"(,并且在控制器中,request.content_type
nil
,request.format
给我:
#<Mime::Type:0x00000002595c20 @synonyms=["application/xhtml+xml"], @symbol=:html, @string="text/html", @hash=4164709875014779265>
我做错了什么?
JavaScript
url = '/sources/data/' + $('#source_id').val() + '/' + $(this).val();
return d3.json(url, function(d) {
var color, format, height, pack, svg, width;
console.log(d);
//...do some stuff
控制器:
class SourcesController < ApplicationController
before_action :set_source
def get_data
@count_data = Hash.new
case params[:type].downcase
when 'stems'
@count_data = JSON.parse @source.stem_cache
when 'words'
@count_data = JSON.parse @source.word_cache
when 'synonyms'
@count_data = JSON.parse @source.synonym_cache
end
puts "hello"
respond_to do |format|
format.json {render json: @count_data}
end
end
这一行有问题
url = '/sources/data/' + $('#source_id').val() + '/' + $(this).val();
你必须
将扩展名"json"添加到 URL
或更改路由文件
资源 :源,默认值:{格式::json}