2016-01-05 4 views
0

Итак, у меня есть @ Переменная с кучей текста json.размещение ответа to_json на вызов ajax

Я хочу, чтобы этот @ var был помещен в мой сценарий js, так что все json будут внутри javascript ajax-вызова. Однако, если я сделать вар на странице shwo как этот

var json = '<%= @json %>'; 

если я ставлю вар внутри URL моего AJAX вызова, как этот

url: json, 

Он подбрасывает в 404 ошибку. Я предполагаю, что это потому, что он ищет URL-адрес «json»?

Спасибо за любой совет!

Редактировать

@fl = Flight.all 
@json = @fl.to_json 

что часть в моем шоу, которое было предложено

$.ajax({ 
    type: 'GET', 
    crossDomain: true, 
    dataType: 'json', 
    url: json , 
    success: function(json) { 
     debugger; 

Она не попала в отладчике

+2

Обновите свой вопрос с тем, что в переменной @json и полной функции Ajax –

+0

Я бы, однако все в Hte AJAX является частной информацией, Я мог бы показать ome однако оно не было бы пользы. Я могу показать @json Var, сейчас покажут –

+0

@CristianoAlencar Сделано! –

ответ

0

Ваш параметр URL должен получить строку, описывающую путь когда отправку необходимо отправить (например, «/ my-url»).

Передача объекта json позволит ajax отправить запрос на нежелательный путь.

404 код описывает именно это. Нет пути, на котором делается подача. Таким образом, рельсы не могут справиться с этим.

Если вы хотите, чтобы передать этот объект JSON на сервер, вы должны установить параметр «данные» с JSon объекта (вместо вашего параметра «URL»)

+0

Привет, Итак, я добавил параметр param, а не url, Still не работает. Все равно получите 404 –

+0

Внутри консоли запускайте «маршруты рейка» и убедитесь, что у вас есть маршрут, по которому вы отправляете запрос. Кроме того, убедитесь, что тип метода правильно установлен (это «GET», «POST», «PATCH»?). –

+0

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

0

ли одно только увидеть, какое значение вы получаете в @json,

@fl = Flight.all   
    @json = @fl.to_json 
    puts @json.inspect 

переменная @json имеет значения Somthing как это

"{\" идентификатор \ ": SomeValue, \" Key_1 \ ": \" somevale \», \ "created_at \" : \ "2015-11-01T15: 39: 31.000Z \", \ "updated_at \": \ "2015-11-01T15: 39: 31.000Z \", \ "key_2 \": somevalue} "

И вы пытаетесь поразить этот адрес (который, конечно, не является URL) через AJAX, который даст вам 404 не найдено

Взгляните на это, вы получите некоторое представление о том Ruby on rails: How to send an AJAX request to rails controller from login popup along with user given credentials

Надежда это поможет вам

Пожалуйста, дайте мне знать, если вы сталкиваетесь с какой-то проблемой :)

+0

Эй, я использовал byebug и получил тот же формат обратно :) Я посмотрю на это в ближайшее время :) –

+0

Эй , Пробовал ссылку, которую вы отправили, у меня возникла неожиданная проблема с запятой. Раздражающе это единственное, что меня останавливает на данный момент :( –

+0

Я думаю, что перед запятой должна быть запятая (: to => 'controller # action'), я исправил там и сейчас. – ashwintastic

Смежные вопросы