-2

私はjQuery.ajaxが初めてなので、ご容赦ください。公開 API である data.citycofchicago.org に対して住所を検証するフォームを作成しようとしています。URL (http://data.cityofchicago.org/api/views/i6bp-fvbx/rows/1478.json) に直接アクセスすると、json 形式のページが表示されます。ただし、ajaxを使用して応答が得られないようです。これが私のコードです:

<script LANGUAGE="JavaScript" SRC="/scripts/jquery-1.7.1.js"></script>
<script type="text/javascript">
$('document').ready(function(){
    $('#button').click(function(){
        $.ajax({
            type: 'get',
            url: 'http://data.cityofchicago.org/api/views/i6bp-fvbx/rows/1478.json',
            success: function() {
                    alert('Got a response!');
                }
        });
    });
});

URL を自分のサイトの内部ページに変更すると、アラート ボックスが表示されます。この URL を使用すると、応答ボックスが表示されません。データ型を json と jsonp に設定しようとしましたが、何もしませんでした。何か案は?

ありがとう。

4

2 に答える 2

1

dataType: jsonpすべてが機能することを指定して期待することはできません。これにより、jQuery は AJAX 呼び出しのクライアント側部分を処理しますが、JSONP に対応するためにサーバー側部分を調整する必要があります。

callback基本的に、JSONP を指定すると、jQueryは「jQuery4857439875349_489437589374」のようなランダムに生成された値を持つパラメーターを自動的に送信します。サーバー側のコードで行う必要があるのは、次のように、指定されたコールバックで返されたデータをラップすることです。

echo $_GET['callback']."(".json_encode($arr).")";
于 2012-08-19T17:10:02.680 に答える
0

Ajax クロス ドメイン リクエストは、Web サイトでの XSS または悪意のあるスクリプトを停止するために、ブラウザでサポートされていません。内部ページでのみ Ajax を使用できます。これは、個別のサブドメインにも適用されます。それが役立つことを願っています。

于 2012-08-19T17:07:14.247 に答える