zoukankan      html  css  js  c++  java
  • Ajax的注意事项

    case 1:

      无论是使用原生的JavaScript,还是JQuery,通过Ajax请求后端程序数据,返回的数据默认是字符串,字符串,字符串,重要的事情说三遍!!!

     

    case 2:  

      不要尝试直接将返回的值和一个数字进行比较,也不要直接作为if或者while的条件,因为字符串作为条件始终为真,即使是“0”,是会认为是true;其次,数字0和字符串“0”始终不相等,要进行比较的话,应该先使用parseInt(res)将string的res转换为int。

     

    case 3:

      后端程序中,要返回给ajax的数据应该使用echo,print,print_r,var_dump等将数据输出,是将数据输出,输出,不要使用return 返回数据,重要的事情说三遍!!!如果是数组或者对象,则先将对象或者数组序列化为json格式的字符串,再echo。。后端程序中输出什么数据,ajax获得的就是什么数据,如果使用return,那么ajax什么都获取不,即使打印变量,也是一个undefined。

      以下的做法是错误的:假设ajax请求index.php,需要获得一个flag标志,但是index.php是return一个flag,于是ajax获得的是一个空字符串,而不是flag!!!!!

    <?php
    	$flag = "true";
    	return $flag;
     ?>
    

     

    case 4:

      后端程序也许只输出了一个字符,但是,ajax收到的数据可不止一个字符,还包含很多空格,所以要使用res.trim()来清楚空格。

     

    case 5:

      在使用ajax来请求时,XMLHttpRequest的open(method,url,async)方法中:

      如果选择异步方式即Async为true(推荐的),那么XMLHttpRequest对象的readyState每次发生变化,都会触发onreadystatechange事件,可以通过readyState和status的值来判断进行到哪一阶段,结果如何。

      如果选择同步方式即Async为false(不推荐),那么就不用为onreadystatechange事件绑定什么处理函数,因为只有当成功或者获得结果的时候才会进行下一步操作,此时readyState必定为4。

  • 相关阅读:
    面向过程编程
    生成器
    迭代器
    装饰器
    函数对象与闭包
    名称空间和作用域
    Django中的as_view方法源码分析
    DRF3序列化反序列化
    DRF4级联与外键字段
    django--BBS项目,后端业务逻辑整理
  • 原文地址:https://www.cnblogs.com/-beyond/p/8145211.html
Copyright © 2011-2022 走看看