代码之家  ›  专栏  ›  技术社区  ›  Annie

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

  •  0
  • Annie  · 技术社区  · 13 年前

    我们应该发送吗 json数组 法线阵列 作为senchatouch2中的查询字符串

    2 回复  |  直到 13 年前
        1
  •  0
  •   ThinkFloyd    13 年前

    在任何情况下,您只能在URL中发送字符串,因此如果您有JSON,则使用 Ext.JSON.encode 使其成为字符串,如果您有JS数组,请使用 toString join 方法,在将数组附加到URL之前将其展开。

    既然你说了querystring,那么我想你并没有做POST请求。

    [编辑] 查看您的注释,您似乎想将一些数据发送到服务进行创建,但在这种情况下,您不应该将数据作为querystring发送,而应该在消息正文中发送。以下是向您的服务发送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) {
            }
        }
    );
    

    [/EDIT](编辑)

        2
  •  0
  •   Annie    13 年前

    当我们使用POST方法发送Sencha Touch2中的参数时,使用 jsonData(json数据) 在类似Ajax请求的情况下,

    外部Ajax请求({ 网址:“”, 方法:“POST”, disableCaching:false, 标题:{ '接受':'应用程序/json', “内容类型”:“应用程序/json” }, jsonData(json数据) : { 名字:fname//{“名字”:[“Sam”,“paul”]} }, 成功:功能(响应) { console.log(response.responseText); }, 故障:功能(响应) { console.log(response.responseText); }, });

    推荐文章