我正在使用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并成功获得响应?
答案 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';