zoukankan      html  css  js  c++  java
  • JSONP的使用

    Jsonp原理:

    首先在客户端注册一个callback (如:'ccc'), 然后把callback的名字(如:ccc)传给服务器。注意:服务端得到callback的数值后,要用jsoncallback(......)把将要输出的json内容包括起来,此时,服务器生成 json 数据才能被客户端正确接收。

    然后以 javascript 语法的方式,生成一个function , function 名字就是传递上来的参数 'jsoncallback'的值 ccc.

    最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端,在客户端在callback的方法里面可以获取json数据。

    客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时javascript文档数据,作为参数,
    传入到了客户端预先定义好的 callback 函数(如上例中jquery $.ajax()方法封装的的success: function (json))里.(动态执行回调函数)

    可以说jsonp的方式原理上和<script src="http://跨域/...xx.js"></script>是一致的(qq空间就是大量采用这种方式来实现跨域数据交换的) .JSONP是一种脚本注入(Script Injection)行为,所以也有一定的安全隐患.

    实现的一个简单的小例子如下:

    前台:

    <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script>
        $(document).ready(function () { 
            $.ajax({
                url: "http://192.168.0.60:9002/pay/test",
                type: "GET",
                dataType: 'jsonp',
                jsonp: 'ccc',
                async: false,
                cache: false,
                timeout: 1000,
                success: function (result) {
                    //获取不到数据
                    alert(2);
                    alert(JSON.stringify(json));
                }   
            }); 
        });
    
        function ccc(json) {
            //获取到数据
            alert(JSON.stringify(json)); 
        }
        
    </script>
    

      后台的接口:

      protected void Page_Load(object sender, EventArgs e)
            { 
                string aa = JsonConvert.SerializeObject(new
                {
                    a = 1,
                    b = 2
                });
                string bb = string.Format("ccc({0})", aa);
                 
                Response.Write(bb);
                Response.End();  
            }
    

      

  • 相关阅读:
    java制作的applet小型播放器
    java文件路径问题及Eclipse package,source folder,folder区别及相互转换
    转:文件操作之File类使用
    JFrame setDefaultLookAndFeelDecorated(true)
    java错误Cannot make a static reference to the nonstatic method
    转:HTML操作 Swing Components
    组件服务简介
    计算ttest 的C程序
    Excel统计函数中比较常用的函数
    Correlation with pvalues
  • 原文地址:https://www.cnblogs.com/wangchengshen/p/5584503.html
Copyright © 2011-2022 走看看