在senchatouch2中将json数组作为查询字符串发送

时间:2013-04-11 05:07:27

标签: arrays json sencha-touch-2 query-string

我们应该在senchatouch2中发送 json数组普通数组作为查询字符串

2 个答案:

答案 0 :(得分:0)

在任何情况下你只能在URL中发送字符串,所以如果你有JSON然后使用Ext.JSON.encode使它成为字符串,如果你有JS数组使用toStringjoin方法来展平将数组附加到URL之前的数组。

既然你说querystring所以我想你并且没有做POST请求。

[编辑] 看看你的评论,似乎你想发送一些数据到服务创建,但在这种情况下你不应该发送数据作为查询字符串,你应该在消息体中发送它。以下是将JSON数据发送到您的服务的示例:

var obj = new Object();
obj.loginEntry  = new Object();
obj.loginEntry.userid = username;
obj.loginEntry.password = password;
var data = Ext.JSON.encode(obj);
Ext.Ajax.request({
        url : 'http://myserver:port/service/entity',
        method : "POST",
        headers: {
            /* Important because default is 
             * Content-Type:application/x-www-form-urlencoded; charset=UTF-8 
             * which is not supported by service
             */
            'Content-Type': 'application/json'
        },
        params : data,
        success : function(response) {
        },
        failure : function(response) {
        }
    }
);

[/编辑]

答案 1 :(得分:0)

虽然我们使用POST方法在Sencha Touch2中发送参数,但在Ajax请求中使用 jsonData

  

Ext.Ajax.request({       网址: '',       方法: 'POST',       disableCaching:假的,       标题:{               '接受': '应用/ JSON',               “内容类型”:“应用/ JSON”       },        jsonData :{                 FirstName:fname // {“FirstName”:[“Sam”,“paul”]}       },       成功:功能(响应)       {        的console.log(response.responseText);       },       失败:功能(响应)       {        的console.log(response.responseText);       },   });