【发布时间】:2011-10-07 07:01:09
【问题描述】:
我正在尝试创建一个安静的服务,在服务器端使用 GAE 和 RESTlet,在客户端使用 jQuery。尽管 RESTlet 的文档非常糟糕,但我决心让自己熟悉一个宁静的框架。但是,我什至无法从中获得基本功能。
我遇到的问题是在 GET、POST、PUT 和 DELETE 之外,似乎只有 DELETE 请求会传递数据部分。
调用如下:
function put() {
try {
$.ajax({
url : url,
type : "PUT", //Same for GET, POST and DELETE
data : data,
success : function(data) {
try {
$("#results").text(data);
} catch (e) {
alert(e);
}
}
});
} catch (e) {
alert(e);
}
}
在服务器端,我在路由器上附加了一个资源,它是这样的:
public class TaskResource extends ServerResource
{
String userID = "jada";
@Override
public void doInit()
{
super.doInit();
userID = (String) getRequestAttributes().get("user");
}
@Get
public String toString(String str)
{
return "GET: task of " + userID + " ||| DATA: " + str;
}
@Put
public String putit(String str)
{
return "PUT: task of " + userID + " ||| DATA: " + str;
}
@Post
public String postit(String str)
{
return "POST: task of " + userID + " ||| DATA: " + str;
}
@Delete
public String deleteit(String str)
{
return "DELETE: task of " + userID + " ||| DATA: " + str;
}
}
以上四种情况,作为str,GET得到一个空参数(可以理解),PUT和POST得到空字符串,DELETE得到实际发送的数据。
我已经尝试过改变参数的类型(到表示或形式)和更具体的注释(例如@Get(“xml”))。目前没有成功。
欢迎任何建议。
【问题讨论】:
-
您发送的“数据”的格式是什么???
标签: java javascript jquery google-app-engine restlet