MooTools:如何为POST ajax请求打包数据?

时间:2011-10-14 14:57:30

标签: ajax post mootools

我正在使用MooTools 1.4.1。我想创建一个ajax post requst,但我无法弄清楚如何构造“data”属性,我希望包含一个id为“myForm”的表单的名称值对。

        $('save').addEvent('click', function(event) {
            var req = new Request({
                method: 'post',
                url: 'save',
                data: { ... },
                onRequest: function() { 
                        // on request
                },
                    onComplete: function(response) {
                        alert(response);
                    });
        });

任何人都知道我应该如何填充“数据”属性?谢谢, - 戴夫

3 个答案:

答案 0 :(得分:1)

您可以使用

$('myForm').toQueryString();

或者,MooTools More包有一个Form.Request()类来使用Ajax发送表单。

答案 1 :(得分:1)

正如Savageman评论的那样,您可以将表单元素放入toQueryString()并通过data属性发送,或者在请求对象上运行.send().post()

你似乎也错过了一个关闭的波浪形支架。

无论如何,这就是我制作AJAX请求的方式:

new Request({
    url: 'http://url/to/ajax/script.php',
    onSuccess: function(data) {
        doStuff();
    }
}).post('action=foo&bar=baz');

如果你计划发回东西,我建议你使用Request.JSON。它不像“猎枪方法” - 呃。

答案 2 :(得分:1)

您只需将表单元素传递给“data”属性,转换就是自动的。

var req = new Request({
    method: 'post',
    url: 'example.com/form.php',
    data: $('myForm'),
    onRequest: function() { 
        // on request
    },
    onComplete: function(response) {
        alert(response);
    }
});

数据 - (mixed:默认为'')Request:send的默认数据,在没有给出数据时使用。可以是 元素 对象 字符串
如果传递了对象 ,将使用 对象:toQueryString 方法进行转换对象到字符串。
如果传递了元素 元素:toQueryString 方法将用于转换将元素转换为字符串。

http://mootools.net/docs/core/Request/Request