2009-07-27 4 views
0

Я пытаюсь настроить обратный вызов Ajax с помощью jQuery, и он просто не работает. Мой рубин код выглядит примерно так:jQuery не может разобрать JSON, построенный с помощью Ruby-JSON

return {:one => some_html, :two => more_html}.to_json 

Когда он попадает к клиенту JQuery поручительств, говоря «ошибка разбора». Если я сделаю это что-то действительно простое, например:

return {:one => 'Something', :two => 'Something else'}.to_json 

Тогда это работает просто отлично. Наверное, мне просто интересно, как библиотека библиотеки, единственной задачей которой является создание JSON, может создать недопустимый JSON? Или что-то еще?

+0

Покажите нам код Javascript –

ответ

2

Возможно ли, что some_html & more_html содержит символы в нем, которые мешают анализу jQuery JSON? Вы использовали Firebug для просмотра ответа AJAX и убедитесь, что он действительно JSON?

+0

На самом деле, это выглядит как Ramaze это неэкранированные кавычки в моей JSON, который ломает все. –

+0

Что будет делать :) –

+0

Получил! Вам нужно использовать «ответить (« текст »), чтобы заставить Ramaze не использовать шаблон. Я не уверен, что делать с этим вопросом сейчас, так как сейчас это совсем бесполезно ... –

0

Возможно, вы не правильно разбираете его, хотя я не могу сказать, потому что вы не разместили код. Для этого используйте JSON javascript parser. Он заботится о потенциальных инъекциях скриптов, хотя это, как правило, достаточно хорошо для меня ...

var json = eval(" (" + httpResponse + ") ");