威尼斯手机平台登陆-官方网站登录

威尼斯手机平台登陆为您带来世界三大博彩公司最新相关资讯,威尼斯官方网站登录充分考虑到不同地域网民的不同需求,威尼斯手机平台登陆良好的用户界面,人性化的操作,实用的功能设计使其广泛受到欢迎,推动实体出版、影视、动漫、游戏等相关文化产业的发展。

您的位置:威尼斯手机平台登陆 > 最新文章 > 用JSONP抓到的数据并不是JSON,该方法使用2个参数

用JSONP抓到的数据并不是JSON,该方法使用2个参数

发布时间:2020-04-21 16:06编辑:最新文章浏览(106)

    HTML第55中学提供了在网页文书档案之间相互吸取与发送音信的效果。使用那一个效果,只要取获得网页所在窗口对象的实例,不唯有同源(域+端口号State of Qatar的web网页之间能够互相通讯,以至足以兑现跨域通讯。

    jsonp

    原理:
    JSONP 利用 <script>成分的那些盛开药大旨,网页能够赢得从此外来源动态产生的JSON数据,而这种利用方式就是所谓的 JSONP。用JSONP抓到的数据并不是JSON,而是任意的JavaScript,用 JavaScript解释器运营并不是用JSON解析器拆解深入分析。

    <script type="text/javascript">   
        var localHandler = function(data){
        alert('我是本地函数,可以被跨域的remote.js文件调用,远程js带来的数据是:' + data.result);    };    
    </script>   
    <script type="text/javascript" src="http://remoteserver.com/remote.js"></script>
    

    远程的remote.js

    localHandler({"result":"我是远程js带来的数据"});
    

    本身本地央浼

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script type="text/javascript">
        // 得到航班信息查询结果后的回调函数
        var flightHandler = function(data){
            alert('你查询的航班结果是:票价 ' + data.price + ' 元,' + '余票 ' + data.tickets + ' 张。');
        };
        // 提供jsonp服务的url地址(不管是什么类型的地址,最终生成的返回值都是一段javascript代码)
        var url = "http://flightQuery.com/jsonp/flightResult.aspx?code=CA1998&callback=flightHandler";
        // 创建script标签,设置其属性
        var script = document.createElement('script');
        script.setAttribute('src', url);
        // 把script标签加入head,此时调用开始
        document.getElementsByTagName('head')[0].appendChild(script); 
        </script>
    </head>
    <body>
    
    </body>
    </html>
    

    恳求flightResult.aspx获取的多少

    flightHandler({
        "code": "CA1998",
        "price": 1780,
        "tickets": 5
    });
    

    调用的url中传送了三个code参数,告诉服务器自个儿要查的是CA19九十九回航班的消息,而callback参数则告诉服务器,小编的本土回调函数叫做flightHandler,所以请把询问结果传到这么些函数中开展调用。

    劣势: 扶助get 安全性不高 (能够通过动态生成jsonp消亡)

    与ajax的区别
    但ajax和jsonp其实本质上是言人人殊的事物。ajax的主干是经过XmlHttpRequest获取非本页内容,而jsonp的主题则是动态增添<script>标签来调用服务器提供的js脚本。

    原贴地址:http://itgeeker.com/mathml/readpaper?pid=53

    浏览器帮助程度:IE8+,firefox4+,chrome8+  opera10+

    cors

    那篇小说写得很清晰,所以转过来,格式上做了下编写制定。

    1. 先是,要想摄取从其余的窗口发过来的新闻,就亟须对窗口对象的message事件进行监听,如下代码:

    document.domain+iframe(适用于主域名肖似的情事)

    在域名称为http://server.example.com中的a.html

    document.domain = 'example.com';
    var $iframe = document.createElement('iframe');
    $iframe.src = 'server.child.example.com/b.html';
    $iframe.style.display = 'none';
    document.body.appendChild($iframe);
    $iframe.onload = function(){
        var doc = $iframe.contentDocument || $iframe.contentWindow.document;
        //在这里操作doc,也就是操作b.html
        $iframe.onload = null;
    };
    

    在域名字为http://server.child.example.com中的b.html

    document.domain = 'example.com'
    

    这种格局方便归方便,但也可以有其便利带给的隐患

    • 安全性,当三个站点被攻击后,另二个站点会引起安全漏洞。

    • 若页面中引进多少个iframe,要想操作全数iframe,domain须要总体设置成同样的。

    其余,postMessage方式正以意料之外的进程获得各个新浏览器的支撑,应赋予入眼盘算。

    window.addEventListener(“message”, function(){},false);

    HTML5中的postMessage

    postMessage附归于html5,不过它帮忙IE8+和其它浏览器,能够兑现同域传递,也能落到实处跨域传递。它包罗出殡和下葬新闻postMessage和接到新闻message成效。

    postMessage调用语法如下

    otherWindow.postMessage(message, targetOrigin, [transfer]);

    • otherWindow : 别的窗口的二个引用,例如iframe的contentWindow属性、实施window.open重回的窗口对象、或然是命名过或数值索引的window.frames。
    • message : 将在发送到别的 window的多少,类型为string只怕object。
    • targetOrigin : 通过窗口的origin属性来内定哪些窗口能接过到新闻事件,其值能够是字符串"*"(表示无界定)或许三个U牧马人I。
    • transfer (可选卡塔尔 : 一串和message 同不平日间传递的 Transferable 对象。

    接收音信message 的质量有:

    • data :从此外 window 中传递过来的数额。
    • origin :调用 postMessage 时音信发送方窗口的 origin 。
    • source :对出殡和安葬音信的窗口对象的援引。

    自己要作为楷模遵从规则如下:域名

    页面A发送音讯代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>页面A</title>
    </head>
    <body>
        <h1>hello jsonp</h1>
        <iframe src="http://127.0.0.1/b.html" id="iframe"></iframe>
    </body>
    </html>
    <script>
    window.onload = function() {  
        var $iframe = document.getElementById('iframe');  
        var targetOrigin = "http://127.0.0.1";  
        $iframe.contentWindow.postMessage('postMessage发送消息', targetOrigin);  
    }; 
    </script>
    

    页面B接纳音信代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>页面B</title>
    </head>
    <body>
        <h1>hello jsonp</h1>
    </body>
    </html>
    <script>
    var onmessage = function (event) {
      var data = event.data;    //消息
      var origin = event.origin; //消息来源地址
      var source = event.source; //源Window对象
      if(origin === "http://127.0.0.1:9000"){
        console.log(data, origin, source);
      }
    };
    // 事件兼容简单处理
    if (window.addEventListener) {
      window.addEventListener('message', onmessage, false);
    }
    else if (window.attachEvent) {
      window.attachEvent('onmessage', onmessage);
    }
    else {
      window.onmessage = onmessage;
    }
    </script>
    

    运作结果如下

    威尼斯正规官网 1

     

    2. 附带,需求动用window对象的postMessage方法向任何窗口发送音信,该方法定义如下所示:

      JavaScript是一种在Web开辟中时常采纳的前端动态脚本技能。在JavaScript中,有三个很关键的安全性约束,被称作“Same-Origin Policy”(同源计谋)。这一政策对于JavaScript代码能够访问的页面内容做了很入眼的范围,即JavaScript只可以访谈与含蓄它的文书档案在同一域下的源委。

    otherWindow.postMessage(message, targetOrigin);

      JavaScript这几个安全计谋在实行多iframe或多窗口编程、以至Ajax编制程序时展现越来越关键。依照那一个政策,在baidu.com下的页面中满含的JavaScript代码,不能够访谈在google.com域名下的页面内容;甚至不一样的子域名之间的页面也无法因而JavaScript代码相互拜候。对于Ajax的震慑在于,通过XMLHttpRequest完成的Ajax需要,不能够向差异的域提交央浼,例如,在abc.example.com下的页面,不可能向def.example.com提交Ajax诉求,等等。

    该方法运用2个参数,第一个参数为所发送的信息文本,但也得以是任何javascript对象,第二个参数是接到音讯的靶子窗口的url地址(比如:http:127.0.0.1:8080/卡塔尔国, 不过我们也足以在url地址字符串中使用通配符”*”, 内定全体的域下,然则我们如故建议利用一定的域名下,otherWindow为要发送窗口对象的引用。

      但是,当实行部分比较尖锐的前端编制程序的时候,不可制止地索要实行跨域操作,此时“同源攻略”就显示过于苛刻。本文就这一个难题,回顾了跨域所供给的一对技巧。

    Demo演示:

      上边我们分三种状态探究跨域技艺:首先谈谈分裂子域的跨域本事,然后探讨完全区别域的跨域才具。

    一经以后本身在hosts文件下 ,绑定2 个域名如下:

    (一)区别子域的跨域技巧。

      大家分五个难题来分别探究:第一个难点是何许跨不一致子域进行JavaScript调用;第叁个问题是怎么着向不一样子域提交Ajax诉求。

    先来消弭第3个难题,假使example.com域下有七个不一致子域:abc.example.com和def.example.com。以后假诺在def.example.com上边有三个页面,里面定义了三个JavaScript函数:

    function funcInDef() {
       .....
    }

     

     

      大家想在abc.example.com下的有些页面里调用地点的函数。再假设大家要研讨的abc.example.com上边包车型客车这么些页面是以iframe形式嵌入在def.example.com上面那些页面里的,那样我们只怕计划在iframe里做如下调用:

    window.top.funcInDef();

     

     

      好,我们注意到,这么些调用是被方今讲到的“同源计策”所禁绝的,JavaScript引擎会一向抛出贰个拾分。

      为了达成上述调用,大家可以因此改换八个页面包车型客车domain属性的点子成功。举例,大家得以将上面在abc.example.com和def.example.com下的多个页面包车型地铁下面都加上如下的JavaScript代码片段:

    <script type="text/javascript">
        document.domain = "example.com";
    </script> 

     

     

      那样,多少个页面就成为同域了,前边的调用也得以健康实行了。

      这里供给小心的某个是,三个页面的document.domain属性只好设置成八个更超级的域名(除了一级域名),但不能够设置成比前段时间域名越来越深层的子域名。举个例子,abc.example.com的页面只可以将它的domain设置成example.com,不能够安装成sub.abc.example.com,当然也无法设置成拔尖域名com。

      上边的事例谈谈的是七个页面归属iframe嵌套关系的气象,当四个页面是开发与被打开的涉嫌时,原理也完全相像。

      下边大家来缓慢解决第四个难题:怎么样向分歧子域提交Ajax央求。

      常常状态下,大家会用与下部好像的代码来创建一个XMLHttpRequest对象:

    威尼斯正规官网 2威尼斯正规官网 3代码

    factories = [
        function() { return new XMLHttpRequest(); },
        function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
        function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
    ];
    function newRequest() {
        for(var i = 0; i < factories.length; i++) {
            try{
                var factory = factories[i];
                return factory();
            } catch(e) {}
        }
        return null;

      上边包车型地铁代码中援用ActiveXObject,是为着包容IE6连串浏览器。每趟大家调用newRequest函数,就收获了一个正要创立的Ajax对象,然后用那些Ajax对象来发送HTTP央浼。举个例子,上边包车型地铁代码向abc.example.com发送了一个GET央浼:

    var request = newRequest();
    request.open("GET", "" );
    request.send(null);

     

     

      假如上边的代码包含在八个abc.example.com域名下的页面里,则这一个GET伏乞可以平常发送成功,未有任何难题。但是,假诺前些天要向def.example.com发送央求,则现身跨域难题,JavaScript引擎抛出拾分。

      解决的情势是,在def.example.com域下放置叁个跨域文件,借使叫crossdomain.html;然后将前方的newRequest函数的定义移到那些跨域文件中;最终像以前改革document.domain值的做法一点差异也没有于,在crossdomain.html文件和abc.example.com域下调用Ajax的页面最上端,都丰硕:

    <script type="text/javascript">
        document.domain = "example.com";
    </script>

     

     

      为了利用跨域文件,我们在abc.example.com域下调用Ajax的页面中放置八个掩盖的指向跨域文件的iframe,比方:

    <iframe name="xd_iframe" style="display:none" src=";

     

     

      当时abc.example.com域下的页面和跨域文件crossdomain.html都在同二个域(example.com)下,大家得以在abc.example.com域下的页面中去调用crossdomain.html中的newRequest函数:

    var request = window.frames["xd_iframe"].newRequest();

     

     

      那样得到的request对象,就可以向

    127.0.0.1       abc.example.com

    (二)完全不一样域的跨域本领。

      借使一流域名都不均等,譬喻example1.com和example2.com时期想透过JavaScript在前面二个通信,则所供给的技术更眼花缭乱些。

      在授课不一样域的跨域技能在此之前,我们率先鲜明一点,上面要讲的手艺也相似适用于前方跨不一致子域的情况,因为跨分裂子域只是跨域难题的叁个特例。当然,在适宜的动静下使用方便的技能,能够确定保障更优的频率和更加高的和睦。

      简言之,依据不相同的跨域需要,跨域本事能够归为上边几类:

    1、JSONP跨域GET请求
    2、通过iframe完毕跨域
    3、flash跨域HTTP请求
    4、window.postMessage

      下边详细介绍种种才干。

    127.0.0.1        longen.example.com

    1. JSONP。

      利用在页面中开创<script>节点的主意向不一致域提交HTTP央浼的法门称为JSONP,那项技巧能够解决跨域提交Ajax央浼的标题。JSONP的做事规律如下所述:

      假设在

    威尼斯正规官网 4威尼斯正规官网 5代码

    var eleScript= document.createElement("script");
    eleScript.type = "text/javascript";
    eleScript.src = "";
    document.getElementsByTagName("HEAD")[0].appendChild(eleScript);

     

     

      当GET请求从

      JSONP的长处是:它不像XMLHttpRequest对象达成的Ajax须要那样受到同源计谋的范围;它的包容性更加好,在更为古老的浏览器中都能够运营,无需XMLHttpRequest或ActiveX的扶助;何况在呼吁完结后得以通过调用callback的艺术回传结果。

      JSONP的症结则是:它只帮衬GET央求而不援救POST等其他门类的HTTP央浼;它只协理跨域HTTP央求这种气象,不能够减轻差别域的八个页面之间什么进展JavaScript调用的难题。

    最近如若在abc.example.com域下有三个abc.html页面,在longen.example.com域下有def.html页面,以后笔者是期望那2个差异地名下的页面能互相通讯,abc.html代码如下:

    2. 透过iframe完成跨域。

      iframe跨域的法子,功效强于JSONP,它不仅可以用来跨域完结HTTP央求,还能够在前端跨域完毕JavaScript调用。由此,完全差别域的跨域难点,平日选择iframe的措施来减轻。

      与JSONP技能通过创制<script>节点向不一样的域提交GET央浼的做事措施贴近,大家也能够因而在

      为了消除这一个难点,我们需求在example1.com下放置三个跨域文件,举例路线是

      当

      第多少个选项是,它可以在iframe中做多少个302跳转,跳转到跨域文件

      另二个增选是,它可以在回到的页面中再放置一个iframe,指向跨域文件,同期也是将赶回结果通过UENCOREL编码之后作为参数缀在跨域文件UTiguanL前边。

      在跨域文件中,包罗一段JavaScript代码,这段代码达成的效率,是从UTiguanL中领取结果参数,经过一定管理后调用原本的

      依据前边的描述,有了跨域文件之后,我们就足以兑现通过iframe格局在分化域之间开展JavaScript调用。那些调用进程能够完全跟HTTP央浼毫不相关,举例有个别站点能够协助动态地调解在页面中放置的第三方iframe的冲天,那实际上是经过在第三方iframe里面检查实验本人页面的莫斯中国科学技术大学学变化,然后通过跨域形式的函数调用将以此转换报告父窗口来成功的。

      既然使用iframe能够达成跨域JavaScript调用,那么跨域提交POST央求等其他类型的HTTP要求就不是难点。比如大家能够跨域调用目的域的JavaScript代码在目标域下提交Ajax央求(GET/POST/etc.),然后将回来的结果再跨域传原来的域。

      使用iframe跨域,优点是功效强盛,援救各类浏览器,差非常少能够产生其他跨域想做的专门的学业;瑕玷是贯彻复杂,要管理很多浏览器宽容难点,并且传输的数额不宜过大,过大了说不许会超过浏览器对UEscortL长度的约束,要思考对数码进行分层传输等。

    <form>  
          <p>  
            <label for="message" style="color:red;font-size:24px;">给iframe子窗口发一个信息:</label>  
            <input type="text" name="message" value="send" id="message" />  
            <input type="submit" value="submit" id="submit"/>  
          </p>  
    </form>  
    <h4>目标iframe传来的信息:</h4>  
    <p id="test">暂无信息</p> 
    
     <iframe id="iframe"  
        src="http://longen.example.com/webSocket/def.html" style="display:none"></iframe>
    

    3. 采取flash完结跨域HTTP央求

      据称,flash在浏览器中的布满率高达十分之八上述。

      flash代码和JavaScript代码之间能够并行调用,况且flash的“安全沙箱”机制与JavaScript的四平机制并不尽相似,由此,大家能够选用flash来达成跨域提交HTTP央求(扶持GET/POST等)。

      例如,大家用浏览器访谈

      这些供给能或无法被成功发送,决定于在example3.com的根路线下是不是放置了一个crossdomain.xml以至这些crossdomain.xml的布置哪些。flash的“安全沙箱”会保障:仅当example3.com服务器在根路线下真的放置了crossdomain.xml文件同期在此个文件中配置了允许接收来自example2.com的flash的央求时,这几个恳求工夫真的打响。上边是五个crossdomain.xml文件内容的例证:

    <?xml version="1.0"?>
    <cross-domain-policy>
        <allow-access-from domain="example2.com" />
    </cross-domain-policy>

     

     

    JS代码如下:

    4. window.postMessage

      window.postMessage是HTML规范的下叁个本子HTML5支撑的八个新天性。受当前网络手艺日新月异的影响,浏览器跨域通讯的须要愈加显然,HTML标准终于把跨域通讯思虑进去了。但前段时间HTML5依然只是三个draft。

      window.postMessage是八个康宁的兑现直接跨域通讯的方法。但是当前实际不是有所浏览器都能辅助,独有Firefox 3、Safari 4和IE8能够支撑这些调用。

    采纳它向此外窗口发送音讯的调用格局差相当的少如下:

    otherWindow.postMessage(message, targetOrigin);

     

     

      在收取的窗口,必要安装多个事件管理函数来接过发过来的消息:

    window.addEventListener("message", receiveMessage, false);
    function receiveMessage(event){ 
        if (event.origin!== "") 
            return;
    }

     

     

      音信满含多个特性:data、origin(引导发送窗口所在域的真人真事消息)和source(代表发送窗口的handle)。

      安全性构思:使用window.postMessage,一定要动用音信的origin和source属性来证实发送者之处,不然会促成XSS漏洞。

      window.postMessage在作用上同iframe落成的跨域功用切合强大,何况选择轻易,效能越来越高,但短处是它方今在浏览器宽容方面有待抓好。


     

    急需对初稿补充的是,在IE6,IE7下可接受IE的Opener可赋值为Object或Function的漏洞,提供postMessage方案的互补方案:

    主页面:

     威尼斯正规官网 6代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "威尼斯正规官网,;

    <html xmlns=";
    <head>
        <title>CrossDomain</title>
    </head>
    <body>
        <iframe src="" 
            frameborder="0" visible="false" height="0" width="0" id="ifrChild"></iframe>
        
        <script type="text/javascript">
            var child = document.getElementById("ifrChild");
            var openerObject = {
                    funcInParent:function(arg){
                        alert(arg);
                        alert('executed by a function in parent page');
                    }
                }
                
            if(!+'v1' && !'1'[0]){ //test browser is ie6 or ie7    
                //crack
                child.contentWindow.opener = openerObject;
            }
            else{
                //postMessage showtime
            }
            
            function onClick(){
                //debugger;
                openerObject.funcInIframe('data from parent page ');
            }
        </script>
        <input type="button" value="click me" onclick="onClick()" />
    </body>
    </html>

    用iframe内嵌其余域下的页面:

    威尼斯正规官网 7威尼斯正规官网 8代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ";

    <html xmlns=";
    <head>
                   <script type="text/javascript">
                            onload = function(){
                                    if(!+'v1' && !'1'[0]){ // test browser if is ie6 or ie7
                                            window.opener.funcInIframe=function(arg){
                                                    alert(arg);
                                                    alert('executed by a function in iframe');
                                            }
                                            window.opener.funcInParent('data from iframe')
                                    }
                            }
                    </script>
            </head>
            <body>
            </body>
    </html>

     

     

    var win = document.getElementById("iframe").contentWindow;
    
    document.getElementById("submit").onclick = function(e){
        e.preventDefault();
        win.postMessage(document.getElementById("message").value,"http://longen.example.com"); 
    }  
    
    window.addEventListener("message",function(e){
         e.preventDefault();
         document.getElementById("test").innerHTML = "从" + e.origin + "那里传过来的消息:n" + e.data;
    },false);
    

    Def.html代码如下:

    HTML代码:

    <form>  
          <p>  
            <label for="message">给父窗口abc.html发个信息:</label>  
            <input type="text" name="message" value="send" id="message" />  
            <input type="submit" />  
          </p>  
     </form>  
     <p id="test2">暂无信息。</p>
    

    JS代码如下:

    var parentwin = window.parent; 
    window.addEventListener("message",function(e){
           document.getElementById("test2").innerHTML = "从父窗口传来的域" +e.origin + ",和内容数据:" + e.data;  
           parentwin.postMessage('HI!你给我发了"'+e.data+'"。',"http://abc.example.com");
    },false);
    

    当自身点击abc.html页面后,能够看出功用如下,从def.html重返内容了。如下:

    威尼斯正规官网 9

    大家供给精晓如下几条音信:

    1. 透过对window对象的message事件进行监听,可以接过音信。
    2. 通过拜候message事件的origin属性,能够获得消息的发送源。
    3. 透过看望message事件的data属性,能够拿走音信内容。
    4. 选择postMessage方法发送音讯。
    5. 经过拜候message事件的source属性,能够获悉发送源的窗口对象(精确的说,应该是窗口的代理对象卡塔尔(قطر‎。

    有了上面的骨干知识点,我们得以延长为贯彻ajax POST跨域的标题。

    二:使用postMessage 知识点解决 ajax中POST跨域难点。

    原理:原理也十分轻松,要是大家的域名abc.example.com下的abc.html页面须要发ajax央浼(跨域,域名称为longen.example.com卡塔尔(قطر‎下,那么大家照旧先跨页面文书档案的样式,和方面同样,我们得现在天longen.example.com下 创设多少个页面,举例叫def.html. 那么大家前天还是在 abc.html 页面嵌入三个掩盖域iframe src路径指向longen.example.com域下def,html页面。进度可能和跨文书档案雷同,只是未来在def.html页面中 在window.onmessage 事件内写ajax乞请就能够,如下代码:

    abc.example.com下的abc.html页面如下:

    html代码和地点肖似,上面是JS代码:

    var win = document.getElementById("iframe").contentWindow;
    
    document.getElementById("submit").onclick = function(e){
          e.preventDefault();
          win.postMessage(document.getElementById("message").value,"http://longen.example.com/"); 
    }  
    
    window.addEventListener("message",function(e){
        e.preventDefault();
        alert(typeof e.data)
        var json = JSON.parse(e.data);
         console.log(json);
        alert(json.url)
    },false);
    

    def.html代码如下:

    JS代码如下:

    //获取跨域数据  
    window.onmessage = function(e){  
         $.ajax({
              url: 'http://longen.example.com/webSocket/test.php',
              type:'POST',
              dataType:'text',
              //data: {msg:e.data},
              success: function(res) {
                   var parentwin = window.parent;  
                   parentwin.postMessage(res,"http://abc.example.com");//跨域发送数据  
              }
          });
     };
    

    test.php代码如下:

    <?php 
        $data=array(  
         url =>1,
          name =>'2',
          'xx-xx'=>"xx"
     );
     echo json_encode($data);
    ?>
    

    如上落到实处情势 就能够达成ajax post跨域了。

    本文由威尼斯手机平台登陆发布于最新文章,转载请注明出处:用JSONP抓到的数据并不是JSON,该方法使用2个参数

    关键词: