406 Rails中的错误响应ajax调用

时间:2014-10-22 20:50:22

标签: jquery ruby-on-rails ruby ajax

我试图通过jQuery ajax对rails控制器进行调用获得json响应。

但当我看到rails服务器中的日志回溯时,rails控制器返回响应为Completed 406 Not Acceptable in 3154ms

jQuery调用是:

$.ajax({
  type: 'POST',
  url: '/media_upload/apicall',
  dataType: 'json',
  data: {'filepicker_url': filepicker_url, 'client_id': client_id, 'token': token, 'type': type, 'name': name },
  success: function (data) { console.log(data);} 
);

控制器操作是:

def apicall
  @content = media_upload_api
  respond_to do |format|
    format.json
  end
end

观点是:

{
"response": {
    "code": "1",
        "status": "success",
    "message": "media correctly uploaded",
    "media": {
        "name": "<%= @content.name %>",
        "content_id": "<%= @content.id %>"
    }
}
}

media_upload_api:

def media_upload_api
  puts params.inspect
  client = Client.find_by_id(params[:client_id])

  if params[:filepicker_url]
    ps = { :name => params[:name], 
         :url => params[:filepicker_url], 
         :source_url => params[:filepicker_url],
         :client_id => params[:client_id], 
         :type => params[:type]
    }
    ps = AsyncContent.allowable_params(ps)
    puts ps
    @content = AsyncContent.new(params[:filepicker_url])
    puts @content.inspect
    if not (@content.save and @content.submit(params[:callback_url]))
      raise InvalidMediaRequest.new(@content.errors.full_messages.join(' '))
    end
    return @content
  else
    raise InvalidMediaRequest.new(:missing_media_file_or_url)
    return @content
  end
end

0 个答案:

没有答案