2

这是我测试 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>

它会顺利工作。

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

谢谢 :)

4

1 回答 1

2

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

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

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

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

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

<?php

  $json = file( "path/to/your/json" );

  echo $_GET['callback'], '(', implode( '', $json ), ');';

?>

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

于 2012-06-16T15:13:02.873 回答