jQuery AJAX调用Java RESTful Web服务无法正常工作

时间:2013-05-08 06:34:32

标签: jquery

我正在使用jQuery AJAX来调用Java RESTful Web服务。 AJAX调用和RESTful都驻留在我的本地机器上。我无法得到答复。

以下是我使用的代码:

JSP:

$("#someCode").blur(function(){ 
  $.support.cors=true;
  var serviceAddress = '192.168.254.25:8080/WeightsAndMeasure/restful/sample/test';

$.ajax({
         type: 'GET',
         dataType: 'html',
         url: serviceAddress,
         crossDomain: true,
         cache:false,
         async:false,

         success: function (data) {
             alert("Data loaded: " + data);
         },
         error: function (xhr) {
             alert(xhr.responseText+' 'xhr.status+' '+ xhr.statusText);
         }
  });
});

雷斯特夫尔:

@Path("/sample")
public class SampleService 
{

  @GET
  @Produces(MediaType.TEXT_PLAIN)
  @Path("/test")
  public Response testService()
  {
    System.out.println("Inside testService");
return Response.ok("You got success.").header("Access-Control-Allow-Origin",  "*").build();     
  }
}

当我通过浏览器URL尝试时,它运行正常。但是当我使用blur(function())的AJAX调用时,它无效。

如何调用restful并成功获得响应?

2 个答案:

答案 0 :(得分:0)

您是否在项目中启用了CORS(跨源资源共享过滤器)? 据我所知,如果要从外部“请求者”

访问Web服务,则必须启用它

答案 1 :(得分:0)

var serviceAddress = '192.168.254.25:8080/WeightsAndMeasure/restful/sample/test';

错了。你必须设置“localhost / ajax /".

在您的脚本中尝试此操作并控制您的restfull代码位于“/ restful / sample / test”

var serviceAddress = '/restful/sample/test';