【问题标题】:Jquery 1.6.2 Doesnt work with datatype : jsonJquery 1.6.2 不适用于数据类型:json
【发布时间】:2011-08-07 10:00:23
【问题描述】:

我正在制作一个注册表单,其中我使用了以下函数来验证注册,当尝试提交表单时调用此函数。

$.ajax({
    type: "POST",
    url: "view/ajax/php/checkcap.php",
    data: $('#capform').serialize(),
    dataType: "json",
    async: false,
    success: function(msg){
        alert(msg.txt);
        // other validations
    }
})

这里的警报只是为了显示来自 checkcap.php 文件的响应。它与 jquery 1.3.2 完美配合,但是我已将 jquery 1.3.2 升级到 1.6.2。使用 jquery 1.6.2 后,函数从 php 文件中获取响应(使用 firebug 检查),但无法显示消息(来自 php 文件的响应)。如何使代码与 jquery 1.6.2 一起使用?

【问题讨论】:

  • alert 真的出现了吗?否则你的请求可能会失败,你会检查错误,而不是成功回调挂钩。
  • 您确定没有出错吗?使用 JS 控制台并查看。看起来那里缺少一些分号
  • 不,我已经发出警报,只是为了调试 php 响应。我检查过的代码中没有任何错误
  • 为什么异步为假?另外,请尝试使用alert(JSON.stringify(msg)) 看看您是否得到了预期的结果。

标签: php jquery ajax json


【解决方案1】:

确保json格式为

{
  "one": "Singular sensation",
  "two": "Beady little eyes",
  "three": "Little birds pitch by my doorstep"
}

http://api.jquery.com/jQuery.getJSON/

您在属性名上缺少双引号

{"status":0,"txt":"a"}   ---correct
{status:0,txt:"a"}       ---wrong

【讨论】:

  • 是的,我使用的数据格式相同:$('#capform').serialize(),它将使这种格式将数据发布到 php
  • 使用 firebug 并告诉你从服务器得到的响应
  • 此响应萤火虫正在从该 php 文件中获取 '{status:0,txt:"a"}'
  • 状态和文本应该在双引号内!!
  • 或者如果表单验证为真'{status:1,txt:"success"}'并且如果表单无效则'{status:0,txt:"failed"}'。
猜你喜欢
  • 1970-01-01
  • 2011-03-22
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 2018-09-03
相关资源
最近更新 更多