2016-03-01 5 views
0

Я хочу отправить JSON данные мой Java Rest Service, , когда сообщение данных от jQyery Ajax для отдыха службы, возвращающие:"parsererror" SyntaxError: Неожиданный маркер с

"parsererror" SyntaxError: Неожиданный маркер с

Java Класс объекта

public class SimpleObject { 
private int id; 
private String name; 

public SimpleObject(){ 

} 

public SimpleObject(int id, String name) { 
    this.id = id; 
    this.name = name; 
} 

public int getId() { 
    return id; 
} 
public void setId(int id) { 
    this.id = id; 
} 

public String getName() { 
    return name; 
} 
public void setName(String name) { 
    this.name = name; 
} 
} 

Отдых Услуги

 @POST 
     @Path("/postjson") 
     @Consumes(MediaType.APPLICATION_JSON) 
     public Response jsonFunc(SimpleObject simpleobjcet){ 
      String output = simpleobjcet.toString(); 
      return Response.status(201).entity(output).build(); 
     } 

JQuery Ajax код клиента

$.ajax({ 
     url: 'http://localhost:8080/RestExample/resources/MyRestService/postjson', 
     type: 'POST', 
     data: '{"id":0,"name":"salih"}', 
     contentType: 'application/json', 
     dataType: 'json', 
     success: function(responseData, textStatus, jqXHR) 
     {  
      console.log(responseData); 
     }, 
     error: function (responseData, textStatus, errorThrown) 
     { 
      console.log(responseData, textStatus, errorThrown); 
      alert('Error' + textStatus); 
     } 
    }); 
+0

Кого эта ошибка? Компилятор Java? JQuery? –

+0

Посмотрите на сетевое общение. Откройте оповещения разработчика о своем браузере и узнайте, что ответил сервер на ваш ответ. Я подозрительно отношусь к 'String output = simpleobjcet.toString()'. –

+0

Предоставление jQuery, когда я отслеживаю сеть браузера с помощью инструмента разработчика f12, Http response 200 ok, но jQuery, дающий эту ошибку –

ответ

0

Спасибо @Tichodroma, я нашел решения, я изменил код RestService, и он работает! New RestService code ..

@POST 
     @Path("/postjson") 
     @Consumes(MediaType.APPLICATION_JSON) 
     public SimpleObject json(SimpleObject simpleObject){ 
      ObjectMapper mapper = new ObjectMapper(); 
      String jsonInString=""; 
      try { 
       jsonInString = mapper.writeValueAsString(simpleObject); 
      } catch (JsonProcessingException e) { 
       e.printStackTrace(); 
      } 
      System.out.println(jsonInString);  
      return simpleObject; 
     } 
1

SimpleObject.toString() не возвращает JSON. Поскольку вы установили dataType: 'json', jQuery ожидает, что ответ будет JSON.

Любое изменение SimpleObject.toString() произвести JSON, или сменить dataType на text.