zoukankan      html  css  js  c++  java
  • jsonp与ajax

    jsonp和ajax木有啥关系!

    实现方法完全不一样。ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加<script>标签来调用服务器提供的js脚本。

    怎么说呢,因为jQuery的原因,我一直以为就是个ajax调用。

            $(document).ready(function(){
                $.ajax({
                    type: "GET",
                    dataType: "JSONP",
                    url: "http://contests.acmicpc.info/contests.json",
                    success: generateHTML,
                    error: function(){alert(arguments[1]);}
                });

    本来想获取 http://contests.acmicpc.info/contests.json 这个json

    然后就错了啦。

    jsonp是用来解决ajax跨域调用的问题。

    感觉方法好神!好厉害!

    不管我们怎么跨域还是不跨越

    <script src="xxx.yyy.ttt.js"></script>

    这个js都是可以被执行的。

    如果我们这样

    <script>
        function loadData(data)
        {
               alert(data);
         }
    </script>

    然后远程的js里面写

    <script>
          loadData({"x":123,"y":456});
    </script>

    那么我们就得到了数据!!!!

    还有个问题就是远程怎么知道我们写的啥函数名呢?

    所以一般在我们访问的链接里面有个callback参数,你写什么名字,远程服务器就用什么函数名来包裹这个数据!比如说京东的评价

    http://club.jd.com/productpage/p-729060-s-3-t-3-p-0.html?callback=jsonp1367561000922&_=1367561099292

    由此可见,虽然jQuery我们和ajax的写法差不多,但是实现上确完全是两码事!

    by 1957
  • 相关阅读:
    pycharm出现乱码
    Name-based virtual servers 给予名称的虚拟服务
    预建报为稳定版本
    nginx指令
    Module ngx_http_index_module nginx的首页模块
    我还在坚持中~
    手机端页面自适应解决方案—rem布局进阶版
    前端页面的适配使用rem换算
    js零碎知识汇总
    让input不可编辑
  • 原文地址:https://www.cnblogs.com/x1957/p/3056721.html
Copyright © 2011-2022 走看看