【问题标题】:ajax problem with sencha touchsencha touch 的 ajax 问题
【发布时间】:2011-05-20 17:28:43
【问题描述】:

我正在尝试在 sencha touch 框架中使用 ajax 提交表单。这是一个要求用户姓名、电子邮件地址和简短消息的简单表单。然后我想将数据发布到一个 php 脚本,该脚本只是将数据通过电子邮件发送给我。

我遇到的问题是当我尝试提交表单时出现以下错误: “语法错误:无法解析 JSON 字符串”

发送请求的代码如下:

var userName = name.getValue();
var userEmail = email.getValue();
var userMessage = message.getValue();
Ext.Ajax.request({
    url:'path/to/phpfile.php',
    jsonData:{"name":userName, "email":userEmail, "message":userMessage},
    method:"POST",
    success:function(){
        alert("Success!");
    },
    failure:function(){
        alert("Error");
    }
});

14583行的sencha touch框架出现错误,即

Ext.util.JSON = {
    encode: function(o){
        return JSON.stringify(0);
    },
    decode: function(s){ 
        return JSON.parse(s); //this is line 14583
    }
};

我刚刚开始学习 Ext 和 sencha touch,所以有人可以在这里指出正确的方向吗?任何线程/教程/示例将不胜感激。

提前致谢

【问题讨论】:

  • 你能捕获从服务器返回的 json 吗?
  • @ballmw 据我所知,请求永远不会到达服务器

标签: ajax sencha-touch extjs


【解决方案1】:

也许您的服务器使用内容协商。在这种情况下,它尊重 Request-Header-Parameter Accept,在您的情况下为 Accept: */*。所以服务器会发送你的脚本 HTML 或 XML,它们不能被读取为 JSON。

将您的代码更改为以下内容:

Ext.Ajax.setDefaultHeaders({
    'Accept': 'application/json'
});
Ext.Ajax.request({
    url:'path/to/phpfile.php',
    params:{"name":userName, "email":userEmail, "message":userMessage},
    method:"POST",
    success:function(){
        alert("Success!");
    },
    failure:function(){
        alert("Error");
    }
});

来源:http://www.sencha.com/learn/legacy/Manual:RESTful_Web_Services

【讨论】:

    【解决方案2】:

    如果将 Ajax 请求更改为以下内容会发生什么。

    Ext.Ajax.request({
            url: 'php/file.php',
            method: 'post',
            params: { id: idvar, data1: Ext.encode(schouw), data2: Ext.encode(opmerkingen) },
            success: function(response) {
                 //Reponse
       }
    });
    

    在我自己的应用程序中,将数据直接编码为 JSON 效果很好。

    您确定要发送的 var 已填充数据吗?在我的应用程序中,我使用以下代码从输入值中减去数据(略有不同);

    formID.getValues().inputFieldID
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      相关资源
      最近更新 更多