jQuery成功POST php没有激活

时间:2014-07-10 17:52:45

标签: javascript php jquery json

我绞尽脑汁,无法让它发挥作用。

我正在使用jQuery来调用PHP页面:

$.ajax({
      type: "POST",
      url: postUrl,
      data: formData,
      async : false,
      contentType: 'application/json; charset=utf-8',
      dataType: 'json',
      success: App.successfulAdd,
      error: App.errorAdd
    });

successfulAdd : function(result) {
    alert("Success!");
},

PHP:

echo json_encode(array('msg' => 'failed'));

Firebug节目:

{"msg":"failed"}

但是没有调用successAdd函数!知道为什么吗?


我已改为

$.ajax({
      type: "POST",
      url: postUrl,
      data: formData,
      async : false,
      contentType: 'application/json; charset=utf-8',
      dataType: 'json',
      success: function (data) {
        alert("Success!");
        },
      error: function (data) {
        alert("Error!");
        }
    });

但仍然错误!显示。

更新

最后我找到了! 使用Notepad ++并使用UTF8编码。在没有BOM的情况下更改为UTF8,现在一切都运行良好。

2 个答案:

答案 0 :(得分:0)

尝试更改为:

success: function(result) {
    App.successfulAdd(result);
},
error: function(result) {
    App.errorAdd(result);
}

这将在响应到达时评估属性,而不是在发送请求时。我怀疑您在构建App对象时发送了请求,但这些属性尚未分配。

答案 1 :(得分:0)

我想我找到了问题的原因:jQuery的版本。

版本:1.11.1,1.11.0,1.10.2,1.10.1,1.10.0,1.9.1,1.9.0无效。 版本1.8.3有效。