zoukankan      html  css  js  c++  java
  • jQuery通过ajax方法获取json数据不执行success的原因及解决方法

    1.jquery通过ajax方法获取json数据不执行success回调

    问题描述:jquery通过ajax方法获取json数据不执行success回调方法

    问题原因:json格式存在问题或不符合标准写法,导致总是执行error回调方法

    解决方案:使json格式务必符合下述3个标准写法:

        1)键名称:用双引号括起;

        2)字符串:用双引号括起;

        3)数字,布尔值不需要使用双引号括起 ;

    注意:一定是双括号!

    2.jQuery中ajax使用json数据类型总是跳过success执行error语句

    执行函数

    1
    2
    3
    4
    5
    6
    7
    error : function(XMLHttpRequest, textStatus, errorThrown) {
    //这个error函数调试时非常有用,如果解析不正确,将会弹出错误框
        alert(XMLHttpRequest.responseText);
    alert(XMLHttpRequest.status);
    alert(XMLHttpRequest.readyState);
    alert(textStatus); // parser error;
    }

    就明白错误信息了;

    弹出的框里显示:

    1
    <!DOCTYPE html PUBLIC "-//W3C //DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD /xhtml1-transitional.dtd">以 及<?xml version="1.0" encoding="gb2312" ?>

    这两句话,虽然不清楚为什么,我删除之后,就成功执行 success了

    3.$.ajax()中的URL跨域时,总是不执行success,老进入error

    1)我加上ServletActionContext.getResponse().setHeader("Access-Control-Allow-Origin", "*");

    解决跨域问题,就顺利进入success了

    2)dataType:"json",

    去掉 看能进success 不 。

    dataType 是预期服务器返回过来的信息类型 。

    原因:返回的数据类型一定要符合定义的数据类型。即如果你定义的 dataType 是 json 类型的,那么返回来的数据一定是 json 才可以,平且不然就会执行 error 里的程序块儿。

    (1) 同时需要特别的注意返回的JSON数据是否是严格的JSON格式.

    (2) 也应该严重关切当后台返回的是一个List 数据(List当中的数据是Json格式)时,有没脏数据即不是严格的JSON格式。

  • 相关阅读:
    编译原理学习导论-作者四川大学唐良(转)初学者必看
    Ajax在chrome浏览器中测试调用失败解决办法
    sublime中输入法输入框只能在一个位置
    第三次作业
    第二次作业
    第一次作业
    2018年 大一下学期第零次作业
    14,15周作业
    第七周作业
    第六周作业
  • 原文地址:https://www.cnblogs.com/linqingvoe/p/10892820.html
Copyright © 2011-2022 走看看