dojo.xhrPost的参数

时间:2011-04-21 15:32:10

标签: post dojo get parameter-passing

当我使用dojo.xhrGet时,我会以这种方式通过GET

发送多个参数
dojo.xhrGet
({
    url:"MyServerPageURL?Param_A="+"ValueA"+"&Param_2="+"Value2",
    load: function(data)
    {
        //do something
    },
    preventCache: true,
    sync: true, 
    error: function(err)
    {
        alert("error="+err); 
    }
});

当我必须使用dojo.xhrPost时,我怎么能做类似的事情(发送多个参数)?

3 个答案:

答案 0 :(得分:6)

除非要发送原始POST字符串,否则不希望使用postData参数。您通常希望使用'content'参数。例如:

dojo.xhrPost({
    url: 'http://whatever...',
    contents: {
        ParamA: 'valueA',
        ParamB: 'valueB'
    },
    load: function(response) {
        // ...
    }
});

注意:使用'contents'也适用于xhrGet,无需自己构建查询字符串并附加到URL。

答案 1 :(得分:4)

尝试使用postData参数。 E.g:

        var myParameters= {"Param_A":"Value_A", "Param_B":"Value_B"};

        var xhrArgs = {
                        url: "postIt",
                        postData: dojo.toJson(myParameters),
                        handleAs: "text",
                        headers: { "Content-Type": "application/json", "Accept": "application/json" },
                        load: function(data) {

                        },
                        error: function(error) {

                        }
                    }


 var deferred = dojo.xhrPost(xhrArgs);

答案 2 :(得分:0)

对于xhrPOst,可以提及要发布的表单名称。因此,所有表单元素都会发布。如果你想传递一些额外的参数,那么在发布的表格中使用隐藏变量。