0

我正在使用 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 尝试它时,它工作正常。但是当我使用 AJAX 调用时blur(function()),它不起作用。

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

4

2 回答 2

0

您是否在项目中启用了 CORS(跨源资源共享过滤器)?据我所知,如果您想从外部“请求者”访问 Web 服务,则必须启用它

于 2015-01-24T19:29:37.150 回答
0
var serviceAddress = '192.168.254.25:8080/WeightsAndMeasure/restful/sample/test';

是错的。您必须设置“localhost/ajax/”。

在你的脚本中试试这个并控制你的restfull代码在“/restful/sample/test”中

var serviceAddress = '/restful/sample/test';
于 2015-01-24T20:15:12.323 回答