通过jquery代码执行http get请求时获得XHR.status 0,而HTTP响应为200 ok

时间:2013-06-04 06:33:58

标签: javascript jquery ajax rest jersey

我正在尝试通过jquery向基于REST的API(基于JAX-RS / Jersey的API)发送get请求。如我在日志和firebug中看到的那样,请求成功到达API,我看到200 ok响应

下面是我的基于jquery的客户端

$(document).ready(function(){
    $("button").click(function(){
        $.ajax({
            type: 'GET',
            url: 'http://mtnlp.com:8080/restdemo/resources/employee/1',
            dataType: "json",
            success: function(data){
                alert("success");
            },
            error: function(xhr){
               alert("error"+xhr.status);
            }
        });
    });
});

但是xhr.status是0。

我的资源是

@GET
@Produces(MediaType.APPLICATION_JSON)
public String getJson( @PathParam("empno") int empno) {  
    JSONObject jObject = new JSONObject();
    System.out.println("someone calls me");
     switch(empno) {
        case 1 :
          jObject.put("name", "George Koch");
          jObject.put("age", "58");
          break;
      case 2:
          jObject.put("name", "Peter");
          jObject.put("age", "50");
          break;
      default:
          jObject.put("name", "Unknown");
          jObject.put("age", "-1");


  } // end of switch

  return jObject.toString();
} 

当我使用我的基于球衣的客户端时,它工作正常。但是对于基于jquery的客户端,我面临着上述问题。

请在下面找到HTTP get request的请求和响应标头

响应标头

Content-Type: application/json
Date: Tue, 04 Jun 2013 06:38:12 GMT
Server: Apache-Coyote/1.1
Transfer-Encoding: chunked

请求标题

Accept: application/json, text/javascript, */*; q=0.01
Accept-Encoding: gzip, deflate Accept-Language  en-US,en;q=0.5
Host: localhost:8080
Origin: null
User-Agent: Mozilla/5.0 (Windows NT5.1; rv:19.0) Gecko/20100101 Firefox/19.0

0 个答案:

没有答案