zoukankan      html  css  js  c++  java
  • Ajax

    Ajax

    1.特点:更新部分网页, 可使因特网应用程序更小、更快,更友好。

    2.很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。

    3.所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。

    4.XMLHttpRequest 用于在后台与服务器交换数据。

    5.同源策略的影响,当在某一域名下请求其他域名,或者同一域名,不同端口下的url时,就会变成不被允许的跨域请求。

    6.原生js(没有jQuery和ajax支持)的情况下,弹出一个同源限制的错误,意思就是你无法跨域请求url的数据。

    7.jsonp

       ajax请求,dataType为jsonp。这种形式需要请求在服务端调整为返回callback([json-object])的形式如果服务端返回的是普通json对象。那么调试的时候,在chrome浏览器的控制台会报"Uncaught SyntaxError: Unexpected token"错误;在firefox浏览器的控制台会报"SyntaxError: missing ; before statement"错误。

    <script type="text/javascript">
                /*为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :*/
                /*当请求被发送到服务器时,我们需要执行一些基于响应的任务。
    每当 readyState 改变时,就会触发 onreadystatechange 事件。
    readyState 属性存有 XMLHttpRequest 的状态信息。*/
                /*0: 请求未初始化
                1: 服务器连接已建立
                2: 请求已接收
                3: 请求处理中
                4: 请求已完成,且响应已就绪*/
                //ajax异步请求本地json数据
                var htp;
                if(window.XMLHttpRequest) {
                    htp = new XMLHttpRequest();
                } else {
                    htp = new ActiveXObject();
                }
                //弹出一个同源限制的错误
                htp.open("GET", "http://www.toutiao.com/stream/widget/local_weather/data/?city=英德", true);
                htp.send();
                htp.onreadystatechange = function() {
                    if(htp.readyState == 4 && htp.status == 200) {
                        console.log(htp.responseType);
                    }
                }
            </script>
    <body>
            <!--script跨域-->
            <!--<script type="text/javascript">
    //            var data=[];
                function callbackfunction(data){
                    console.log(data.responseText);
                }
            </script>
            <script src="http://www.toutiao.com/stream/widget/local_weather/data/?city=英德?callback=callbackfunction"></script> -->
            <!--jq跨域,要浏览器支持跨域,你的地址也要支持跨域-->
            <script src="js/jquery-2.1.0.js"></script>
            <script>
                $(function() {
                    $.get('http://www.toutiao.com/stream/widget/local_weather/data/?city=英德', function(data) {
                        console.log(data);
                        
                    })
                })
                
            </script>
        </body>
    <script src="js/jquery-2.1.0.js" type="text/javascript"></script>
            <script type="text/javascript">
                //js方法:ajax获取本地数据
                var xmlhttp = new XMLHttpRequest();//
                xmlhttp.open("GET", "data.json", true);//传入绝对地址
                xmlhttp.send();//发送请求
                xmlhttp.addEventlist = function() {
                    //如果到了第四部,状态为200表示成功拿到数据
                    if(this.readyState == 4 && this.status == 200) {
                        var myObj=[];
                        myObj = JSON.parse(this.responseText);
    //                    consol.log(myObj);
    
                    }
                };        
                //jq方法:ajax获取本地数据
    /*            $.ajax({
                    type:"GET",//获取方式
                    url:"data.json",//获取地址
                    dataType:"json",//返回数据格式
                    success:function(data){//回调函数
                        for(var i=0;i<data.length;i++){
                            console.log(data[i].area);
                        }
                    }
                });        */
                //ajax获取后台数据,你的地址支持跨域,dataType:"jsonp"解决浏览器跨域问题
                $.ajax({
                    type:"GET",//获取方式
                    url:"http://www.toutiao.com/stream/widget/local_weather/data/?city=英德",//获取地址
                    dataType:"jsonp",//返回数据格式
                    success:function(data){//回调函数
                        console.log(data)
                    }
                });    
        </script>    
  • 相关阅读:
    从零开始的ESP8266探索(1)-使用Server功能搭建Web Server
    模型收集
    3D打印社区
    [教程]教你如何制作彩色的3D打印Groot
    1-5 软件安装
    1-4 打印机测试
    1-3 打印机几个重要操作
    1-1 打印机基本参数
    1-2 打印机使用注意事项
    (二 -3-3) 天猫精灵接入Home Assistant-自动发现Mqtt设备-自动生成配置信息
  • 原文地址:https://www.cnblogs.com/LWJ-booke/p/7348560.html
Copyright © 2011-2022 走看看