Ajax通过servlet调用rest服务

时间:2014-02-12 15:38:02

标签: java jquery ajax rest servlets

我有一点问题: 我正在开发一个jQuery Mobile应用程序,我需要对休息服务进行ajax调用。 我使用servlet动态创建页面。

我尝试对其余网址进行ajax调用:

http://localhost:8181/myRestServicePath/func?key=value

来自以下网址的网页:

http://localhost:8080/Mypage

但是我从浏览器中收到了交叉错误。

所以我尝试执行此调用,使用doPost()方法传递Java servlet。

现在,我打算从

进行ajax调用
 http://localhost:8080/Mypage

为:

 http://localhost:8080/myServletPath/func?key=value

这个servlet应该将POST请求重定向到我的RestService:

http://localhost:8181/myRestServicePath/func?key=value

如何执行此重定向?

1 个答案:

答案 0 :(得分:0)

有几种方法可以实现这一目标。我只是分享两个公共可能性如下。

对于POST请求: - 您需要在servlet中使用Apache HTTPClient将请求发送到Web服务并获得响应。收到回复后,您可以将回复发送到您的页面。

对于GET请求: -

您不需要额外的servlet来进行跨域请求。您可以使用JSONP

jQuery示例:

$.ajax({
     url:"http://localhost:8080/myServletPath/func?key=value",
     dataType: 'jsonp', // Notice! JSONP <-- P (lowercase)
     success:function(json){
         // do stuff with json (in this case an array)
         alert("Success");
     },
     error:function(){
         alert("Error");
     },
});

对于后端示例,请访问Java J2EE Tutorial for Cross Domain JSONP