Jquery – Calling Rest webservice using JQuery Ajax call , web service is returning JSON string


I have made a Rest Web Service:

package org.jboss.samples.rs.webservices;

import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.GET;
import javax.ws.rs.Path;

public class HelloWorldResource {

    public String sayHello(@PathParam("dealId") int dealId) {
        switch(dealId) {
        case 1 :System.out.println("employee id.....");
            return "{'name':'George Koch', 'age':58}";
        case 2:
            return "{'name':'Peter Norton', 'age':50}";
            return "{'name':'unknown', 'age':-1}";
    } // end of switch


When I go to internet explorer & type this in the address bar:


It is giving me:

{'name':'Peter Norton', 'age':50}

But when I call it using an ajax call in a JQuery method. e.g.

           type: "GET",  
           url: "http://localhost:8080/nagarro-0.0.1-SNAPSHOT/MyRESTApplication/dealInfo/2",  
           data: "",  
           success: function(resp){  
             // we have the response  
             alert("Server said123:\n '" + resp + "'");  
           error: function(e){  
             alert('Error121212: ' + e);  

I am getting an Error in this call.

enter image description here

When I am debugging using F12 in IE, I am getting following as well

"Invalid JSON: {\'name\':\'Peter Norton\', \'age\':50}"

Would anybody tell me what could be the problem in my call.

Best Solution

Your service and output is right.

Problem is same orgin policy http://en.wikipedia.org/wiki/Same_origin_policy

Ajax does not allow access to inner level service. For example, in the www.example.com/index.html, you can not access www.example.com/service/book?id=1. Because you changed your context path from www.example.com to www.example.com/service/book. This is not allowed for security but we have one solution

Previously, I had same problem and I solved it with below code. I think it can help you. Key point is dataType: 'json'

    function testService()
                        dataType: 'json',
                        headers: {
                            "Access-Control-Allow-Origin": "*"
                        success: function(data)
                            document.writeln("Book id : " + data.id);
                            document.writeln("Book title : " + data.name);
                            document.writeln("Description : " + data.description);
                        error: function(data)