Parseerror и Jquery не назывались - PullRequest
1 голос
/ 13 февраля 2012

Я использую Jruby версии 1.6.6. JQuery Verison 1.7. И получил некоторые данные онлайн с приложением Ruby: http://churbackend.impac.ch/news

Теперь я хочу прочитать Json из этих данных.
мой запрос как:

    var test = $.ajax({
    type: "GET",
    dataType: "jsonp",
    url: "http://churbackend.impac.ch/news.json",

    success: function(data) {
        alert('Success!');
    },
    error: function(xhr, error, stack) {
      alert(error);
      alert(stack);
    }
});

Я получаю 2 предупреждения назад: Первый (ошибка): parseerror

И второй (стек): jQuery17036032104332288495_1329118955821 не был вызван

мой news_controller выглядит так:

 def index
    @news = News.all
    respond_to do |format|
      format.html
      format.json { render :json =>  @news }
    end
  end

Я пробовал разные вещи, такие как «text json» и почти все решения, которые я нашел на различных форумах. Но ничто не могло помочь мне решить мою проблему. Если вы знаете, как с этим справиться, пожалуйста, помогите мне, или если вам нужна дополнительная информация, просто спросите (я новичок в обсуждениях)
С наилучшими пожеланиями
Лука

Редактировать:
Я получил решение для parseerror:

new news_controller:
  def index
    @news = News.all
    respond_to do |format|
      format.html
      format.json { render :json =>  @news }
      format.js { render :json =>  @news,  :callback => params[:callback] }
    end
  end

Работает с этим запросом ajax:

var test = $.ajax({
    type: "GET",
    dataType: "jsonp",
    url: "http://localhost:3000/news.js",

    success: function(data) {
        alert('Success!');
    },
    error: function(xhr, error, stack) {
      alert(error);
      alert(stack);
    }

});

Но я получил последний вопрос: Как я могу получить это работает с запросом getJSON? В данный момент он терпит неудачу и просто выдает пустую строку.

$(document).ready(function(){
    $.getJSON('http://localhost:3000/news.js', function(data) {
        alert(data);
         $.each(data, function(i, entries)
                 { 
                     $('#maincontainer').append('<div class="AccordionTitle">'
                     +'<h2>'
                     + entries.title
                     + '</h2>'
                     +'</div>'
                    );
                   });
    });
});
...