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ません。助けてください。

ありがとう :)

4

1 に答える 1

2

JSONPはサーバー側で生成されます。サーバーはデータをフェッチし、それをJSONとしてエンコードしてから、関数呼び出しをラップします。

したがって、あなたの場合.json、次の方法でファイルを変更することができます。

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

ただし、これにはハードコードされたコールバックメソッドがあるため、取得時に行った変更には反応しません。

もう1つの方法は、小さなPHPラッパーを作成して(または他の好きなものを使用して)、JSONの周りに関数を追加してから、クライアントに送り返すことです。

<?php

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

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

?>

(後のコードは、生産的な使用を目的としたものではなく、ローカルテストのみを目的としています!)

于 2012-06-16T15:13:02.873 に答える