Не удается получить данные JSON из Rails API

#ruby-on-rails #angularjs #rails-api

#ruby-on-rails #angularjs #rails-api

Вопрос:

Я делаю запрос get на http://localhost:3000/cars/1 но сервер не отвечает на данные json. Это говорит так

 Started GET "/api/cars/1" for 127.0.0.1 at 2016-10-07 12:47:34  0600
Processing by Api::V1::CarsController#show as HTML
Parameters: {"id"=>"1"}
User Load (0.5ms)  SELECT  "users".* FROM "users" WHERE "users"."uid"       = $1 LIMIT $2  [["uid", "sahidul03@gmail.com"], ["LIMIT", 1]]
Car Load (0.6ms)  SELECT  "cars".* FROM "cars" WHERE "cars"."id" = $1    LIMIT $2  [["id", 1], ["LIMIT", 1]]
User Load (1.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
Started GET "/" for 127.0.0.1 at 2016-10-07 12:47:34  0600
Processing by Rails::WelcomeController#index as HTML
Parameters: {"internal"=>true}
(2.9ms)  BEGIN
Rendering /home/sahidul/.rvm/gems/ruby-2.2.3/gems/railties- 5.0.0.1/lib/rails/templates/rails/welcome/index.html.erb
Rendered /home/sahidul/.rvm/gems/ruby-2.2.3/gems/railties-5.0.0.1/lib/rails/templates/rails/welcome/index.html.erb (3.9ms)
Completed 200 OK in 11ms (Views: 10.2ms | ActiveRecord: 0.0ms)


(6.8ms)  COMMIT
Completed 200 OK in 25ms (Views: 1.3ms | ActiveRecord: 11.8ms)
  

Мой метод контроллера такой

  def show
   car= Car.find(params[:id])
   render json: car
 end
  

Внешний запрос

   function getCar(id) {
        return $http.get($auth.domain   '/api/cars/'   id);
    }
  

Я использую драгоценный камень devise_token_auth во внутреннем интерфейсе и ng-token-auth во внешнем интерфейсе

Комментарии:

1. Попробуйте изменить $http.get($auth.domain '/api/cars/' id); на $http.jsonp($auth.domain '/api/cars/' id);

2. @Md.Sahidul Islam .. в основном ваш запрос к серверу — это http-запрос.. Это должен быть запрос json.

Ответ №1:

Добавить .json к URL-адресу

 $http.get($auth.domain   '/api/cars/'   id   '.json');
  

Надеюсь, это поможет!