1

在我的 jqm 应用程序中,我使用 jQuery $.ajax 发送和接收 json 数据进行 POST。在浏览器和 iPhone 上一切正常;在 Android 上,我注意到当这个服务器响应是这样的:

{ "code" : 500,
  "errorMsg" : "bla bla bla",
  "errors" : null,
  "status" : "INTERNAL_SERVER_ERROR",
  "success" : false
}

ajax 调用“错误”回调而不是“成功”。这仅在 android 上发生,并且仅在我包含 corova-2.0.0 时才会发生。项目中的js。有什么帮助吗?

我正在使用带有 jqm 1.3.1 和 jQuery 1.9.1 的 cordova-2.0.0

这是我的代码:

 var ajax = $.ajax({
   type: "post",
   url: url,
   dataType: 'json',
   contentType: 'application/json; charset=utf-8',
   data: data,
   timeout: 30000
});

var success = function (d) {
   if(d.success==true && obj.success)
       obj.success(d.data);
   else
   {
       var msg = parseErrors(d);
       console.log(msg);
       //open page passing results
       obj.msgBus.fire("RequestResult", {
           callback: function(){  obj.msgBus.fire("Welcome");},
           success: false,
           text: msg
       });
   }
};

var error = function (xhr, status, e) {
   console.log('error ajax url:[' + url + ']  status:[' + status + ']  error:[' + e + ']');
   if (obj.error) {
       if ((typeof e == 'string'))
           obj.error({
               statusText: e,
               code: xhr.statusCode,
               text: xhr.responseText
           });
       else {
           e = $.extend(e, {
               statusText: status
           });
           obj.error(e);
       }
   }
};
var complete = function () {
   if (obj.complete) {
       obj.complete();
   }
};

var parseErrors = function(d){
   console.log( d);
    if(d.errors==null){
        return d.errorMsg;
   }
   else
   {
       var res="";
       for (var i=0;i< d.errors.length;i++){
            res+= "{0}: {1} <br/>".format( d.errors[i].field, d.errors[i].errorMsg);
       }
       return res;
   }
};

ajax.success(success).error(error).complete(complete);

其中数据是这样的对象:

{ 
   "date" : 1371679200000,
  "idBeach" : "1",
  "idStuff" : 3,
  "idUser" : "8",
  "numStuff" : 1
}
4

1 回答 1

0

试试这个,它对我有用

$.ajax({
    async: false,
    type: "POST",
    url: "Your_URL",
    dataType: "json",
    success: function (data, textStatus, jqXHR) {


        $.each(data, function (i, object) {
            alert(obj.Data);
        });

    },
    error: function () {
        alert("There was an error loading the feed");
    }
});
于 2013-06-20T13:46:06.523 回答