ajax(2)

作者: 悟空你又瘦了 | 来源:发表于2018-11-26 09:35 被阅读0次

    6.jsonp跨域请求

    跨域是指从一个域名的网页去请求另一个域名的资源。只要协议、域名、端口有任何一个的不同,就被当作是跨域
    
    jsonp的本质:动态创建script标签,然后通过它src属性发送跨域请求,然后服务器响应的数据格式为
    【函数调用(foo(实参))】, 所以在发送请求之前必须先声明一个函数,并且函数的名字与参数中传递的
    名字要一致,这里声明的函数是由服务器响应的内容,(实际就是一段js代码-函数调用)来调用
    
    ajax和jsonp其实本质上是不同的东西。
    ajax的核心是通过XMLHttpRequest获取非本页内容,
    jsonp的核心则是动态添加<script>标签来调用服务器提供的js脚本。
    
    $.ajax({
                 type: "get",     //只可以get,没有post,因为是通过动态添加script的,没有添加post请求头
                 async: false,   //script标签请求数据后再执行,async是异步的意思,这里是同步
                 url: "http://flightQuery.com/jsonp/flightResult.aspx?code=CA1998",
                 dataType: "jsonp",  //jsonp跨域请求
                 jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
                 jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函
                 //数名,jQuery会自自动在页面添加这个函数,后台返回的是这个函数的调用,而我们请求的数
                 //据作为参数传入,这样前台就可以拿到数据了
                 success: function(json){
                     alert('您查询到航班信息:票价: ' + json.price + ' 元,余票: ' + json.tickets + ' 张。');
                 },
                 error: function(){
                     alert('fail');
                 }
             });
    
    

    7、JSON的了解?XML和JSON的区别?

    *了解: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 它是基于JavaScript的一个子
    集。数据格式简单, 易于读写, 占用带宽小; 
    {'age':'12', 'name':'back'} JSON.parse('str') //转换string为JSON格式
     JSON.stringfy('JSON') //转换JSON为string格式
    *区别:
    (1).数据体积方面。 
        JSON相对于XML来讲,数据的体积小,传递的速度更快些。
    (2).数据交互方面。
        JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。
    (3).数据描述方面。
        JSON对数据的描述性比XML较差。
    (4).传输速度方面。
        JSON的速度要远远快于XML。
    

    相关文章

      网友评论

          本文标题:ajax(2)

          本文链接:https://www.haomeiwen.com/subject/uzkkzxtx.html