JQuery возвращает 404 для действительного маршрута рельсов?

0

У меня это в моем маршруте:

scope '/api' do
    # ...
    resources :callbacks, only: [:create]
end

Он работал (возвращая 500 ошибок), но я исправил это, и вдруг я получаю ошибку 404, когда это запускается с этим куском coffeescript:

  $('.add-callback button').on 'click', (e) ->
    $form = $(@).parent()

    $data =
      notes: $form.find('[name="callback-notes"]').val()
      date : $form.find('[name="callback-date"]').val()
      time : $form.find('[name="callback-time"]').val()

    $.ajax
      type: "POST",
      url: "/api/callbacks",
      data: $data,
      success: (data) ->
        if data.success
          $form.fadeOut ->
            location.reload true

и он возвращает это:

POST http://localhost:3000/api/callbacks 404 (Not Found) 

Но POST/api/callbacks находится в списке допустимых маршрутов, когда вы получаете 404 в другом месте:

callbacks_path   POST  /api/callbacks(.:format)  callbacks#create

Есть идеи?

  • 0
    Вы не включили очевидную информацию: что произойдет, если вы просто введете http://localhost:3000/api/callbacks в адресную строку браузера? Теоретически, я ожидаю, что вы получите ошибку из-за использования GET, а не POST, но если вы получите 404, который предложил бы направление исследования ... Или используйте wget или curl или что-то подобное, чтобы фактически выполнить POST для него , Крайне маловероятно, что проблема здесь в jQuery.
  • 0
    Возвращает 404, потому что это запрос GET. Но я включил строку в бит «допустимых маршрутов» на странице 404, которая гласит, что вышеупомянутое должно быть допустимым. Я пробовал CuRL но получаю CuRL Invalid authenticity token
Теги:

1 ответ

1

Я совершенно глуп. Я нашел ответ, используя этот бит кода в консоли:

$.ajax({
  type:'POST', 
  url:'/api/callbacks', 
  complete:function(xhr){ document.body.innerHTML=xhr.responseText; }
})

Маршрут был действительным, но он отправил 404, потому что запись, которую я пытался получить в контроллере, не была найдена.

Ещё вопросы

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