Backbone fetch ничего не возвращает - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь создать простой пример модели магистрали, извлекающей данные из сервлета.

У меня есть это:

require(["backbone"],function(Backbone)


var myDataModel = new (Backbone.Model.extend({

    initialize:function(){
        this.set({title:"My First Backbone",data:new Date()});
    },

    setTitle:function(title){       
        this.set({title:title});        
    },

    setData:function(data){     
        this.set({data:data});      
    },

    getTitle:function(){        
        return this.get("title");       
    }, 

    getData:function(){     
        return this.get("data");        
    },
    url:"http://........../BackboneApp/Todo",

    parse:function(response,xhr){


        console.log(response);

    }

}));

myDataModel.fetch().done(function(s){console.log(s)});

и мой сервлет такой:

public class TodoServlet extends HttpServlet  {


public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String text = "{id:1,title:'harry',data:'sdsd'}";
    response.setContentType("application/json");  // Set content type of the response so that jQuery knows what it can expect.

    response.getWriter().write(text);       // Write response body.
}

}

Функция синтаксического анализа внутри модели не выполняется, как и метод done. Но метод fail работает нормально, возвращая объект ответа.

1 Ответ

0 голосов
/ 30 мая 2018

Ваша строка JSON неверна.Это должно быть

"{"id":1,"title":"harry","data":"sdsd"}"

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...