【发布时间】:2012-07-30 14:18:57
【问题描述】:
这里是场景 我有一个 REST 服务定义如下:
@Path("/company/{companyName}/sessions")
public class RESTSessionController {
RESTService service = new RESTService();
@GET
@Produces({"application/json"})
@Path("/{username}/{password}")
public Result getFriend(@PathParam ("companyName") String companyName ,
@PathParam ("username") String username,
@PathParam ("password") String password){
System.out.println(companyName);
return service.login(username,password);
}
}
要调用它,我有一个 javascript 如下:
$.ajax({
url: 'http://localhost:8888/rest/company/hertz/sessions/amir/help',
dataType: 'json',
data: null,
success: function(data) {
$("#abc").html(dumpObj(data,"Result",'',0));
}
});
这很好,我得到了这个:
{"code":"200","description":"Amir is now logged in.","payload":{"@type":"xs:string","$":"Amir123"}}
这很好。
现在我尝试更进一步,使用对象调用我的服务,因此我将代码更改为:
$.ajax({
qObj={username:"Amir",password:"123",companyName:"hertz"}
url: 'http://localhost:8888/rest/company/',
dataType: 'json',
data: JSON.stringify(qObj),
success: function(data) {
$("#abc").html(dumpObj(data,"Result",'',0));
}
});
它不会起作用。
我的问题很简单,如何使用 jquery/javascript 在路径中(或没有参数)调用带有参数的 REST 服务?
感谢帮助
阿米尔
【问题讨论】:
-
我知道这不是主题,但是使用
GET请求让用户登录听起来是个坏主意。 -
我认为他只是在玩 jquery,否则这是一个非常糟糕的做法,因为密码没有在您提到的内容之上散列。
-
Jay,感谢您的评论,Quynh 是对的,这只是我尝试构建我的框架并确保在启动主应用程序之前我拥有所需的一切。您的两个 cmets 对于使用 GET 和纯密码都是有效的。
标签: java javascript jquery rest