5

请让我知道以下是否是使用 jQuery 将数据发送到另一个页面的正确方法。我是初学者,不确定语法。rowData是 JSON 格式。我通过单击按钮传递值。

$.post("GridValues.jsp", {"rowData": rowData });
4

4 回答 4

6

您的语法POST取决于 JSP 页面是期望接收 CGI 样式的 URI 编码变量还是 JSON blob。

在前一种(更常见的)情况下,您的代码是正确的 -rowData变量将显示为需要进行 JSON 解码的 CGI 参数。

如果您希望在$.post调用完成后让您的客户端代码执行某些操作,那么现代的方法是使用延迟对象:

$.post(...).done(function(data, textStatus, jqXHR) {
    // called on success
}).fail(function(jqXHR, textStatus, errorThrown) {
    // called on failure
}).always(function() {
    // called in both cases 
});

Note how using deferred objects exposes features (.fail and .always callbacks) that are not directly available using $.post, which only supports passing a success (aka done) handler.

Using the jqXHR result of $.post to register callbacks is more flexible than passing callbacks as parameters directly to the AJAX-related methods. It allows you to write functions that are only responsible for initiating the AJAX call and then have handlers that are completely decoupled from that responsible for processing the results.

于 2012-10-15T09:17:04.027 回答
3

您的 jquery 调用应该适合您。另外,您可以随时参考 jquery API jQuery.post

jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

url 包含请求发送到的 URL 的字符串。

数据与请求一起发送到服务器的映射或字符串。

success(data, textStatus, jqXHR)请求成功时执行的回调函数。

数据类型服务器预期的数据类型。默认值:智能猜测(xml、json、脚本、文本、html)。

试一试,如果您遇到任何问题,请告诉我们。

于 2012-10-15T09:16:44.577 回答
2
$.post("GridValues.jsp", {"rowData": rowData }, function(){} );  

它和

$.ajax({
type: 'POST',
url: "GridValues.jsp",
data: {"rowData": rowData },
success: function(){}
});
于 2012-10-15T09:15:51.490 回答
1

此语法是有效的。

见: http ://api.jquery.com/jQuery.post/

该文档提供了以下语法: jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

您确定不想包含成功处理程序吗?

于 2012-10-15T09:16:20.633 回答