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。

  • 相关阅读:
    进阶之路(基础篇)
    进阶之路(基础篇)
    进阶之路(基础篇)
    进阶之路(基础篇)
    进阶之路
    C语言连接MySQL数据库(转)
    Linux下mysql的远程连接(转)
    Linux 操作MySQL常用命令行(转)
    Linux(Ubuntu12.04)上玩儿STC单片机(转)
    信号量 Linux函数 semget();semctl();semop();(转)
  • 原文地址:https://www.cnblogs.com/-beyond/p/8145211.html
Copyright © 2011-2022 走看看