ajax

ajax优缺点:

        缺点:1.不支持浏览器back按钮;

                   2.安全性不高;

                   3.对搜索引擎的支持较弱

         优点:1.无刷新获取数据;

                    2.异步模式,提高体验;

                    3.ajax在客户端,减少服务器负载

get和post区别:

              0.get在浏览器回退时是无害的,而post会再次提交请求,

              1.get会被缓存,post不会缓存

              2.  get是从服务器上获取数据,post是向服务器传送数据

               3. post比get安全,因为数据在地址栏上不可见。

4.get方式提交的数据最多只能有1024字节,而post则没有此限制

5.get使用url或Cookie传参。而post将数据放在BODY中。

6.get地址可以收藏,post地址无法

7.get参数会留在url地址中,post不会

 

使用原生AJAX
     1.创建XMLHttpRequest对象,后者ActiveX兼容ie5,ie6版本
     
 
      2.用open方法建立请求,
         注意:1.并没有真正请求,只是正准备请求
                    2.url需要是相同协议和端口,不然会因为安全问题报错
          
        有get和post两种请求方式,默认为true异步请求,可以省略,为false是同步请求
 
     3.将请求时发送的参数
       注意:get请求时参数为null,post请求时,需要将对象数据转化为name=yxy&age=18这种格式
       

       如果是post请求,需要设置请求头

        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

 
      4.触发xhr事件
        注意:xhr.responseText是获取是字符串数据,需要转化成对象    
      JSON.parse();将字符串数据转化为对象数据,用于读取
      JSON.stringify();将对象数据转化为字符串数据,用于存
         
    
 

JQ方式的ajax请求

     也可以用回调函数done(),fail(),always()
$.ajax({
        type:'get/post',
        url:'',
        dataType:''json/xml"
         }).done(function(req){//成功函数})
              .fail(function(){//失败})
              .always(function(){//无论成功或失败都执行});
 
 

跨域请求

        同源策略:相同域名、协议、端口均相同,不相同就就是跨域请求

         方法一:在服务端加上header('Access-Control-Allow-Origin:*);   不过这个一般都是由后端设置

         方法二:JSONP,原理就是利用创建一个script标签,用src属性实现

                       json与jsonp区别:

                                 json数据就两种数组和对象,

                                 jsonp数据就是回调函数和数据;例:abc([])

           例:

                                  

                               上面请求不到,下面里面jsonp就可以请求,请求的数据是一个回调函数

                            

                       如何将请求地址变成jsonp请求地址:cbName的设置需要和服务端一致

                  

 

 

 

 

 

posted @ 2019-04-23 10:37  fanbu  阅读(164)  评论(0编辑  收藏  举报