如何通过原型.js在正文和查询参数中发送数据



My Service (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_____nn";
        txt += "ERROR DESCRIPTION : " + err.message + "nn";
        txt +=" Click OK to continue."; 
        alert(txt);
}

我不知道如何通过 body 和 Prototype.js 中的查询参数传递值。任何帮助都非常感谢。

问候阿伦拉吉

当您的请求方法发布时,您在请求中设置的任何参数都将在请求正文中发送。也可以在您发送到的 URL 中手动构建一些查询字符串参数,尽管这严格来说不是发送 POST 的正确方法(即其中包含 sidecar 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 等效项覆盖,因此您不必分别查询两组表单数据。

最新更新