невозможно получить доступ к данным из рельсов API в Angularjs

0

Я пытаюсь создать простой todo api, используя rails-api gem, и для frontend я использую AngularJS. Когда я отправляю запрос на получение сервера rails из браузера, он дает соответствующий ответ JSON (например, http://localhost: 3000/tasks), но когда я пытаюсь получить доступ к тому же из углового с помощью $ http.get(http://localhost: 3000/tasks), то вместо успеха будет работать функция обработчика отказа. Что мне делать?

Вот мой код

Контроллер задач

class TasksController < ApplicationController
  before_action :set_task, only: [:show, :update, :destroy]

  # GET /tasks
  # GET /tasks.json
  def index
    @tasks = Task.all

    render json: @tasks
  end

  # GET /tasks/1
  # GET /tasks/1.json
  def show
    render json: @task
  end

  # POST /tasks
  # POST /tasks.json
  def create
    @task = Task.new(task_params)

    if @task.save
      render json: @task, status: :created, location: @task
    else
      render json: @task.errors, status: :unprocessable_entity
    end
  end

  # PATCH/PUT /tasks/1
  # PATCH/PUT /tasks/1.json
  def update
    @task = Task.find(params[:id])

    if @task.update(task_params)
      head :no_content
    else
      render json: @task.errors, status: :unprocessable_entity
    end
  end

  # DELETE /tasks/1
  # DELETE /tasks/1.json
  def destroy
    @task.destroy

    head :no_content
  end

  private

    def set_task
      @task = Task.find(params[:id])
    end

    def task_params
      params.require(:task).permit(:title, :completed, :order)
    end
end

Угловой код

angular
.module('app', [])
.controller('MainCtrl', [
'$scope',
'$http',
function($scope,$http){
  $scope.test = 'Hello world!';

  $http.get('http://localhost:3000/tasks').then(function(response){
    $scope.tasks = response.data;
  },function(response){
    alert('error');
  })
}]);

HTML

<body ng-app="app" ng-controller="MainCtrl">
    <div>
      {{test}}
    </div>
    <ul>
      <li ng-repeat="task in tasks">{{task.title}}</li>
    </ul>
</body>

Когда я посещаю HTML-страницу, он показывает ошибку как предупреждение

Теги:
rails-api

1 ответ

1
Лучший ответ

Это звучит как проблема CORS. Поддерживает ли ваш веб-сервис CORS? Если нет, вы можете использовать инструменты, такие как стойки.

  • 0
    Спасибо вам за помощь. Это сработало отлично.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню