我的服务(RESTful JAX-RS)正在接收如下值。
public Response methodName(String content,
@QueryParam("valueONE") String one,
@QueryParam("valueTWO") String two,
@QueryParam("valueTHREE") String three)
从Ajax调用我必须将值传递给该服务。在我的场景中,我尝试过如下。这对我不起作用。
try {
new Ajax.Request(url, {
method : 'post',
postBody : {
Object.toJSON(content),
valueONE : one,
valueTWO : two,
valueTHREE : three,
},
onSuccess : function(response) {
alert('Success Response' + response.responseText);
},
onFailure : function(response) {
alert('Request has not been hit to the server.'
+ response.responseText);
}
});
} catch (err) {txt = "_____ERROR_____\n\n";
txt += "ERROR DESCRIPTION : " + err.message + "\n\n";
txt +=" Click OK to continue.";
alert(txt);
}
我不知道如何通过body以及Prototype.js中的queryparameter传递值。非常感谢任何帮助。
此致 ArunRaj
答案 0 :(得分:2)
当您的请求方法发布时,您在请求中设置的任何参数都将在请求正文中发送。也可以在您发送到的URL中手动构建一些查询字符串参数,尽管这绝对不是发送POST的正确方法(即包含其中的边车GET)。
new Ajax.Request('path/to/server', {
parameters: {
foo: 'One',
bar: 'Two',
baz: 'Three'
}
});
这将导致在请求正文中填充一组POST变量[foo,bar,baz]。
new Ajax.Request('path/to/server?boo=Four&blarg=Five', {
parameters: {
foo: 'One',
bar: 'Two',
baz: 'Three'
}
});
根据服务器的松弛,这可能导致相同的POST以及由查询字符串填充的一组GET变量[boo,blarg]。在PHP服务器上,它们被整理到REQUEST全局对象中,同名的GET变量被POST等价物覆盖,因此您不必单独查询这两组表单数据。