【问题标题】:Receiving 406 error making d3.json call to rails app接收 406 错误使 d3.json 调用 rails 应用程序
【发布时间】:2017-08-28 14:56:24
【问题描述】:

我有一个网页尝试使用 d3 向 Rails 应用程序请求 json 数据。出于某种原因,我不断收到 406 错误(“不可接受”),并且在控制器内,request.content_typenilrequest.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

【问题讨论】:

  • 请添加示例网址
  • 我想你可以在这里得到答案stackoverflow.com/questions/12320259/…
  • 谢谢@artgb!我认为指定 content_type 就足够了,但事实证明我需要将.json 添加到网址中——而您重新阅读该帖子的指示使我进行了实验并找出了这个事实。如果您将此作为答案发布,我将不胜感激,以便我可以将其标记为这样。

标签: javascript ruby-on-rails json d3.js


【解决方案1】:

这一行有问题

url = '/sources/data/' + $('#source_id').val() + '/' + $(this).val();

你必须

将扩展名“json”添加到 url

或更改路由文件

资源:源,默认值:{格式::json}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多