【问题标题】:Javascript: How to test JSONP on localhostJavascript:如何在 localhost 上测试 JSONP
【发布时间】:2012-07-01 13:28:34
【问题描述】:

这是我测试 JSONP 的方式:我运行 XAMPP,并在文件夹 htdocs 中创建一个 javascript 文件夹。我创建了json1.json 文件,其中包含一些要处理的数据。

之后,我在本地运行这个html文件,它会调用“其他机器”中的一个函数(这里是localhost

这是我在这个问题中的代码:

<head>
    <script>
            function updateSales(sales) {
                alert('test jsonp');
                // real code here
                }

    </script>

    </head>
    <body>
        <h1>JSONP Example</h1>
        <script src="http://localhost:85/javascript/json1.json?callback=updateSales"></script>
    </body>

但是当我跑步时,什么也没有发生。但是如果换成网上其他真实的json,就可以了。这意味着换行:

<script src="http://localhost:85/javascript/json1.json?callback=updateSales"></script>

到行:

<script src="http://gumball.wickedlysmart.com/?callback=updateSales"></script>

它将顺利运行。

所以,我不知道如何使用 localhost 测试JSONP,请帮助我。

谢谢:)

【问题讨论】:

    标签: javascript jsonp


    【解决方案1】:

    JSONP 在服务器端生成。服务器获取您的数据,将其编码为 JSON,然后围绕它包装一个函数调用。

    因此,在您的情况下,您可以通过以下方式修改您的 .json 文件:

    updateSales( { /* your data */ } );
    

    然而,这将有一个硬编码的回调方法,因此它不会对您在检索它时所做的更改作出反应。

    另一种方法是编写一个小的 PHP 包装器(或使用任何你喜欢的东西)并在 JSON 周围添加函数,然后将其发送回客户端。

    <?php
    
      $json = file( "path/to/your/json" );
    
      echo $_GET['callback'], '(', implode( '', $json ), ');';
    
    ?>
    

    (后面的代码绝不用于任何生产用途,而仅用于本地测试!)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-23
      • 2013-09-06
      • 2015-08-15
      • 2015-10-31
      • 1970-01-01
      • 2018-03-14
      • 2012-01-24
      • 2019-08-13
      相关资源
      最近更新 更多